R में डेटा रीशेपिंग का अर्थ है पंक्तियों और स्तंभों को अपनी ज़रूरत के अनुसार इस तरह व्यवस्थित करना कि आप उन्हें अपने प्रयोजन के लिए उपयोग कर सकें। प्रायः डेटा को R में डेटा फ़्रेम फ़ॉर्मेट के रूप में लिया जाता है ताकि 'rbind()', 'cbind()' जैसी फ़ंक्शनों का उपयोग करके डेटा प्रोसेसिंग की जा सके।
इस प्रक्रिया में, आप डेटा को पंक्तियों और स्तंभों में फिर से आकार देते हैं या पुनर्गठित करते हैं। रीशेपिंग का मतलब है डेटा को उस विशिष्ट तरीके से पुनर्गठित करना, जिसकी आपको आगे प्रोसेस करने के लिए आवश्यकता है।
अपना डेटा बनाना
आइए एक रैंडम नंबर जेनरेटर बनाएं और डेटा फ़्रेम में जोड़ने के लिए कॉलम तैयार करें। साथ ही बाद में उपयोग के लिए id भी डालें। 'set.seed(123)' का उपयोग रैंडम नंबर उत्पन्न करने के लिए किया जाता है ताकि जो भी इसे उपयोग करे, सभी मशीनों पर वही सैंपल दोहराया जा सके। तीन चर colm1, colm2, colm3 बनाए जाते हैं। 'sample()' की मदद से 1 से 15 तक के मान उत्पन्न होते हैं, और वही मान दोहराया भी जा सकता है। साथ ही, एक डेटा फ़्रेम का उपयोग तालिका में डेटा संग्रहीत करने के लिए किया जाता है और id भी जोड़ी जाती है, जो एक अद्वितीय संख्या है।
set.seed(123)
N <-15
colm1 <- sample(1:15, N, replace=TRUE)
colm2 <- sample(1:15, N, replace=TRUE)
colm3 <- sample(1:15, N, replace=TRUE)
df_Temp <- data.frame(colm1, colm2,colm3)
df_Temp$id<-seq(nrow(df_Temp))
df_Tempसंचालित द्वारा
ऊपर के कोड से निम्नलिखित आउटपुट मिलता है, जहाँ 'colm1', 'colm2', 'colm3' नामक तीन कॉलम हैं और 1 से 15 तक की id शामिल है। संबंधित कॉलमों में मान 1 से 15 तक भरे गए हैं, जहाँ कुछ संख्याएँ दोहराई गई हैं, जबकि कुछ संख्याएँ आ भी नहीं सकतीं।
colm1 colm2 colm3 id
15111411553233431411144391510121162977695811131295315104810111410131267713910914109915संचालित द्वारा
cbind फ़ंक्शन
उपयोग: वेक्टर, मैट्रिक्स और डेटा फ़्रेम को स्तंभों द्वारा संयोजित करने के लिए। पैरामीटर: cbind(v1,v2): v1, v2 वेक्टर, मैट्रिक्स या डेटा फ़्रेम हो सकते हैं
आइए बाइंडिंग का उदाहरण देखें।
'df_Temp[,4]' से id चुनी जा सकती है, जबकि 'df_Temp[,2]' df_Temp के 'colm2' को चुनता है, जैसा कि नीचे दिया है, जो 'cbind()' का पैरामीटर बनता है और 'cbindexample' चर में संग्रहीत होता है। आगे, 'colnames()' की मदद से कॉलम नाम बदले जा सकते हैं, जो c वेक्टर इनपुट के रूप में वेरिएबल स्वीकार करता है और नए मान, अर्थात् 'newid', 'new_colm2' देता है।
cbindexample<-cbind(df_Temp[,4],df_Temp[,2])
colnames(cbindexample)<- c('newid','new_colm2')
cbindexampleसंचालित द्वारा
ऊपर का कोड निम्नलिखित आउटपुट देता है जिससे आप 'cbind' फ़ंक्शन का उपयोग करके id और column2 के दो कॉलम बाइंड करके एक नया डेटा फ़्रेम बना सकते हैं। साथ ही, कॉलम नाम 'new_colm2' कर दिया गया है, जबकि 'id' को 'newid' कर दिया गया है।
newid new_colm2
111253341159612798991310311812101371410159संचालित द्वारा
rbind फ़ंक्शन:
उपयोग: rbind का उपयोग वेक्टर, मैट्रिक्स या डेटा फ़्रेम को पंक्तियों द्वारा संयोजित करने के लिए किया जाता है। पैरामीटर: rbind(v1,v2): v1, v2 वेक्टर, मैट्रिक्स या डेटा फ़्रेम हो सकते हैं।
आइए 'new_vector' नामक एक नया वेक्टर बनाएं और उसे दो कॉलम वाले नए 'cbindexample' के साथ 'rbind' का उपयोग करके संयोजित करें, जहाँ दोनों को जोड़कर 'rbindexample' में संग्रहीत किया जाता है।
new_vector<- c(16,15)
rbindexample<- rbind(cbindexample,new_vector)
rbindexampleसंचालित द्वारा
ऊपर का कोड नीचे दिया आउटपुट देता है, जहाँ 'newid' और 'new_colm2' में क्रमशः 16 और 15 के मानों के साथ एक नई पंक्ति जोड़ी गई है।
newid new_colm2
1112533411596127989913103118121013714101591615संचालित द्वारा
Melt फ़ंक्शन:
उपयोग: Melt फ़ंक्शन किसी ऑब्जेक्ट को molten अवस्था में बदलने के लिए उपयोग होता है, अर्थात यह डेटा के कई कॉलमों को लेकर उन्हें एक ही कॉलम में बदल देता है। पैरामीटर: melt(data,…,na.rm=FALSE/TRUE, value.name=”value” ), data: वह इनपुट जिसे आप melt करने जा रहे हैं। ...: वह इनपुट जो पास किया जाता है या जहाँ से किया जाता है। na.rm: इसका उपयोग स्पष्ट missing मानों को अप्रत्यक्ष missing में बदलने के लिए होता है। value.name: मानों को वेरिएबल में संग्रहीत करने के लिए आइए वह कोड देखें, जहाँ आप id वेरिएबल का उपयोग करके डेटा को एक कॉलम में 'column name' और 'value' के साथ 'molt' करते हैं:
आइए 'library()' का उपयोग करके 'reshape2' लाइब्रेरी इम्पोर्ट करें और 'id' वेरिएबल के अनुसार 'df_Temp' के colm1, colm2, colm3 कॉलमों को एक ही स्थान 'variable' में मिलाने के लिए melt का उपयोग करें।
library(reshape2)
molted=melt(df_Temp,id.vars=c("id"))
moltedसंचालित द्वारा
ऊपर का आउटपुट दिखाता है कि जब आप id वेरिएबल के अनुसार colm1, colm2, colm3 के डेटा को molt करते हैं, तो वह 'variable' नामक एक कॉलम में संयोजित हो जाता है और कॉलम के मान 'value' में रखे जाते हैं।
Dcast फ़ंक्शन:
उपयोग: जब आपके पास एक molten डेटासेट हो, तो आप इस फ़ंक्शन का उपयोग करके उसे मूल फ़ॉर्मेट में बदल सकते हैं। पैरामीटर: dcast(data,id_variable~value), data: molten डेटा जिसे मूल रूप में बदलना है। id_variable: एक या एकाधिक कॉलम जो अन्य कॉलमों के डेटा को एक कॉलम में melt करने के लिए उपयोग किए गए थे। ~: इस चिन्ह के बाद हम molten डेटासेट के वैल्यूज़ या नए molten कॉलम का उपयोग करते हैं।
आप नीचे का कोड देख सकते हैं जहाँ 'library()' का उपयोग करके 'reshape2' इम्पोर्ट किया गया है, जहाँ 'dcast()' का पहला पैरामीटर वह डेटा है जिस पर 'molt()' फ़ंक्शन किया गया था और '~' चिन्ह के साथ id दी जाती है, जहाँ नया molten कॉलम बनता है।
library(reshape2)
dcast(molted,id~variable)संचालित द्वारा
id colm1 colm2 colm3
11511142155333344141114539161012117297869591113121053151148101214101313677149109151099संचालित द्वारा
आप देख सकते हैं कि 'molt()' फ़ंक्शन के बाद डेटा फिर से मूल डेटासेट में बदल गया है। तीन कॉलम हैं, जिनमें उनके संबंधित मान हैं, और id एक अलग कॉलम में है।
Transpose फ़ंक्शन:
उपयोग: यह पंक्तियों को स्तंभों में और स्तंभों को पंक्तियों में बदलने के लिए उपयोग किया जाता है। पैरामीटर: t(data), data वह डेटा फ़्रेम है जिसे आपको पास करना है और जिसका ट्रांसपोज़ लेना है।
आइए transpose फ़ंक्शन का उपयोग करके पंक्ति को स्तंभ और स्तंभ को पंक्ति में बदलें। यह सरलता से 't(df_Temp)' का उपयोग करके किया जा सकता है, जैसा कि नीचे किया गया है।
R में डेटा रीशेपिंग का अर्थ है पंक्तियों और स्तंभों को अपनी ज़रूरत के अनुसार इस तरह व्यवस्थित करना कि आप उन्हें अपने प्रयोजन के लिए उपयोग कर सकें। प्रायः डेटा को R में डेटा फ़्रेम फ़ॉर्मेट के रूप में लिया जाता है ताकि 'rbind()', 'cbind()' जैसी फ़ंक्शनों का उपयोग करके डेटा प्रोसेसिंग की जा सके।
इस प्रक्रिया में, आप डेटा को पंक्तियों और स्तंभों में फिर से आकार देते हैं या पुनर्गठित करते हैं। रीशेपिंग का मतलब है डेटा को उस विशिष्ट तरीके से पुनर्गठित करना, जिसकी आपको आगे प्रोसेस करने के लिए आवश्यकता है।
अपना डेटा बनाना
आइए एक रैंडम नंबर जेनरेटर बनाएं और डेटा फ़्रेम में जोड़ने के लिए कॉलम तैयार करें। साथ ही बाद में उपयोग के लिए id भी डालें। 'set.seed(123)' का उपयोग रैंडम नंबर उत्पन्न करने के लिए किया जाता है ताकि जो भी इसे उपयोग करे, सभी मशीनों पर वही सैंपल दोहराया जा सके। तीन चर colm1, colm2, colm3 बनाए जाते हैं। 'sample()' की मदद से 1 से 15 तक के मान उत्पन्न होते हैं, और वही मान दोहराया भी जा सकता है। साथ ही, एक डेटा फ़्रेम का उपयोग तालिका में डेटा संग्रहीत करने के लिए किया जाता है और id भी जोड़ी जाती है, जो एक अद्वितीय संख्या है।
ऊपर के कोड से निम्नलिखित आउटपुट मिलता है, जहाँ 'colm1', 'colm2', 'colm3' नामक तीन कॉलम हैं और 1 से 15 तक की id शामिल है। संबंधित कॉलमों में मान 1 से 15 तक भरे गए हैं, जहाँ कुछ संख्याएँ दोहराई गई हैं, जबकि कुछ संख्याएँ आ भी नहीं सकतीं।
cbind फ़ंक्शन
उपयोग: वेक्टर, मैट्रिक्स और डेटा फ़्रेम को स्तंभों द्वारा संयोजित करने के लिए।
पैरामीटर: cbind(v1,v2): v1, v2 वेक्टर, मैट्रिक्स या डेटा फ़्रेम हो सकते हैं
आइए बाइंडिंग का उदाहरण देखें।
'df_Temp[,4]' से id चुनी जा सकती है, जबकि 'df_Temp[,2]' df_Temp के 'colm2' को चुनता है, जैसा कि नीचे दिया है, जो 'cbind()' का पैरामीटर बनता है और 'cbindexample' चर में संग्रहीत होता है। आगे, 'colnames()' की मदद से कॉलम नाम बदले जा सकते हैं, जो c वेक्टर इनपुट के रूप में वेरिएबल स्वीकार करता है और नए मान, अर्थात् 'newid', 'new_colm2' देता है।
ऊपर का कोड निम्नलिखित आउटपुट देता है जिससे आप 'cbind' फ़ंक्शन का उपयोग करके id और column2 के दो कॉलम बाइंड करके एक नया डेटा फ़्रेम बना सकते हैं। साथ ही, कॉलम नाम 'new_colm2' कर दिया गया है, जबकि 'id' को 'newid' कर दिया गया है।
rbind फ़ंक्शन:
उपयोग: rbind का उपयोग वेक्टर, मैट्रिक्स या डेटा फ़्रेम को पंक्तियों द्वारा संयोजित करने के लिए किया जाता है।
पैरामीटर: rbind(v1,v2): v1, v2 वेक्टर, मैट्रिक्स या डेटा फ़्रेम हो सकते हैं।
आइए 'new_vector' नामक एक नया वेक्टर बनाएं और उसे दो कॉलम वाले नए 'cbindexample' के साथ 'rbind' का उपयोग करके संयोजित करें, जहाँ दोनों को जोड़कर 'rbindexample' में संग्रहीत किया जाता है।
ऊपर का कोड नीचे दिया आउटपुट देता है, जहाँ 'newid' और 'new_colm2' में क्रमशः 16 और 15 के मानों के साथ एक नई पंक्ति जोड़ी गई है।
Melt फ़ंक्शन:
उपयोग: Melt फ़ंक्शन किसी ऑब्जेक्ट को molten अवस्था में बदलने के लिए उपयोग होता है, अर्थात यह डेटा के कई कॉलमों को लेकर उन्हें एक ही कॉलम में बदल देता है।
पैरामीटर: melt(data,…,na.rm=FALSE/TRUE, value.name=”value” ),
data: वह इनपुट जिसे आप melt करने जा रहे हैं।
...: वह इनपुट जो पास किया जाता है या जहाँ से किया जाता है।
na.rm: इसका उपयोग स्पष्ट missing मानों को अप्रत्यक्ष missing में बदलने के लिए होता है।
value.name: मानों को वेरिएबल में संग्रहीत करने के लिए
आइए वह कोड देखें, जहाँ आप id वेरिएबल का उपयोग करके डेटा को एक कॉलम में 'column name' और 'value' के साथ 'molt' करते हैं:
आइए 'library()' का उपयोग करके 'reshape2' लाइब्रेरी इम्पोर्ट करें और 'id' वेरिएबल के अनुसार 'df_Temp' के colm1, colm2, colm3 कॉलमों को एक ही स्थान 'variable' में मिलाने के लिए melt का उपयोग करें।
ऊपर का आउटपुट दिखाता है कि जब आप id वेरिएबल के अनुसार colm1, colm2, colm3 के डेटा को molt करते हैं, तो वह 'variable' नामक एक कॉलम में संयोजित हो जाता है और कॉलम के मान 'value' में रखे जाते हैं।
Dcast फ़ंक्शन:
उपयोग: जब आपके पास एक molten डेटासेट हो, तो आप इस फ़ंक्शन का उपयोग करके उसे मूल फ़ॉर्मेट में बदल सकते हैं।
पैरामीटर: dcast(data,id_variable~value),
data: molten डेटा जिसे मूल रूप में बदलना है।
id_variable: एक या एकाधिक कॉलम जो अन्य कॉलमों के डेटा को एक कॉलम में melt करने के लिए उपयोग किए गए थे।
~: इस चिन्ह के बाद हम molten डेटासेट के वैल्यूज़ या नए molten कॉलम का उपयोग करते हैं।
आप नीचे का कोड देख सकते हैं जहाँ 'library()' का उपयोग करके 'reshape2' इम्पोर्ट किया गया है, जहाँ 'dcast()' का पहला पैरामीटर वह डेटा है जिस पर 'molt()' फ़ंक्शन किया गया था और '~' चिन्ह के साथ id दी जाती है, जहाँ नया molten कॉलम बनता है।
आप देख सकते हैं कि 'molt()' फ़ंक्शन के बाद डेटा फिर से मूल डेटासेट में बदल गया है। तीन कॉलम हैं, जिनमें उनके संबंधित मान हैं, और id एक अलग कॉलम में है।
Transpose फ़ंक्शन:
उपयोग: यह पंक्तियों को स्तंभों में और स्तंभों को पंक्तियों में बदलने के लिए उपयोग किया जाता है।
पैरामीटर: t(data), data वह डेटा फ़्रेम है जिसे आपको पास करना है और जिसका ट्रांसपोज़ लेना है।
आइए transpose फ़ंक्शन का उपयोग करके पंक्ति को स्तंभ और स्तंभ को पंक्ति में बदलें। यह सरलता से 't(df_Temp)' का उपयोग करके किया जा सकता है, जैसा कि नीचे किया गया है।
ऊपर का कोड निम्नलिखित आउटपुट देता है:
आप देख सकते हैं कि 15 पंक्तियों और चार कॉलम वाले डेटा फ़्रेम को ट्रांसपोज़ लेने पर 15 कॉलम और 3 पंक्तियों में बदल दिया गया है।
बधाई
बधाई हो, आप इस ट्यूटोरियल के अंत तक पहुँच गए हैं!
इस ट्यूटोरियल में, आपने R के अलग-अलग फ़ंक्शन जैसे 'rbind(),'cbind()', साथ ही 'Melt()', 'Dcast()', और अंत में transpose फ़ंक्शन के बारे में सीखा।
यदि आप R के बारे में और सीखना चाहते हैं, तो DataCamp का Introduction to R कोर्स करें और हमारा R Packages: A Beginner's Tutorial देखें।
संदर्भ:
Melt फ़ंक्शंस