मुख्य सामग्री पर जाएँ

R में डेटासेट का सबसेट बनाना

किसी भी डेटा प्रोफेशनल के लिए डेटासेट का सबसेट बनाना एक अहम कौशल है। इस त्वरित इंटरैक्टिव ट्यूटोरियल में डेटा को सबसेट करना सीखें और अभ्यास करें!
· 6 मि॰ पढ़ें

AI के साथ खोजें

चाहे आप यह तुलना कर रहे हों कि अलग-अलग जनसांख्यिकी समूह मार्केटिंग अभियानों पर कैसे प्रतिक्रिया देते हैं, किसी विशेष समय-सीमा पर ध्यान केंद्रित कर रहे हों, या इन्वेंटरी से कुछ चुने हुए उत्पादों की जानकारी निकाल रहे हों—डेटासेट का सबसेट बनाना आपको अपने डेटासेट से उपयोगी अवलोकन निकालने में सक्षम बनाता है। R ऐसा बेहतरीन टूल है जो डेटा का सबसेट बनाना आसान और सहज बनाता है। इस ट्यूटोरियल के अंत तक, आप अपने डेटासेट से मनचाही जानकारी निकालना जान जाएंगे।

डेटा का सबसेट बनाना आपके डेटा की सामग्री को नहीं बदलता, बल्कि केवल उस हिस्से का चयन करता है जो आपके लक्ष्य के लिए सबसे प्रासंगिक है। सामान्यतः, अपने डेटासेट की पंक्तियों और स्तंभों का सबसेट बनाने के तीन तरीके हैं—इंडेक्स के आधार पर, नाम के आधार पर, और मान (वैल्यू) के आधार पर।

इंडेक्स के आधार पर पंक्तियों और स्तंभों का सबसेट

अपनी पंक्तियों और स्तंभों का सबसेट बनाने का एक तरीका है अपने डेटासेट के इंडेसेज़ के आधार पर। यह वैसा ही है जैसे आप अपनी पंक्तियों और स्तंभों को इस तरह बताएं: "पहली पंक्ति", "दूसरे और पाँचवें स्तंभों में सभी पंक्तियाँ", या "दूसरे से पाँचवें स्तंभों में पहली पंक्ति"। आइए R में iris नामक डेटासेट का उपयोग करके ऐसे वाक्यों को निर्दिष्ट करें। इसकी डॉक्यूमेंटेशन के अनुसार, "यह प्रसिद्ध (Fisher या Anderson का) iris डेटासेट क्रमशः सेपल की लंबाई और चौड़ाई तथा पंखुड़ी की लंबाई और चौड़ाई के माप सेंटीमीटर में देता है, प्रत्येक 3 iris प्रजातियों में से 50 फूलों के लिए। प्रजातियाँ हैं Iris setosa, versicolor, और virginica."


          # "The first row":
          iris[1, ]

          # "All rows in second and fifth columns":
          iris[, c(2, 5)]

          # "The first row in second to fifth columns":
          iris[1, 2:5]
          

डेटा का सबसेट बनाने के लिए, आपके डेटासेट ऑब्जेक्ट के बाद वर्ग कोष्ठक का उपयोग किया जाता है। आपके डेटासेट की पंक्तियाँ वर्ग कोष्ठक के अंदर पहले घटक के रूप में दी जाती हैं, और स्तंभ दूसरे घटक के रूप में, जिन्हें कॉमा से अलग किया जाता है:

data[rows, columns]

नाम के आधार पर पंक्तियों और स्तंभों का सबसेट

R में, आपके डेटासेट की पंक्तियों और स्तंभों के नाम संबंधी गुण (एट्रिब्यूट) होते हैं। रो-नेम्स कम उपयोग होते हैं और डिफ़ॉल्ट रूप से इंडेक्स प्रदान करते हैं—पूर्णांक जो 1 से आपके डेटासेट की पंक्तियों की संख्या तक जाते हैं—ठीक वैसे ही जैसे आपने पिछली धारा में देखा। वास्तव में, यदि आप iris डेटासेट पर rownames() कॉल करेंगे, तो आप देखेंगे कि ये केवल 1 से 150 तक इंडेक्स हैं:

 > rownames(iris)
[1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12"  "13"  "14"
[15] "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24"  "25"  "26"  "27"  "28"
[29] "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36"  "37"  "38"  "39"  "40"  "41"  "42"
[43] "43"  "44"  "45"  "46"  "47"  "48"  "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"
[57] "57"  "58"  "59"  "60"  "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"
[71] "71"  "72"  "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84"
[85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96"  "97"  "98"
[99] "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108" "109" "110" "111" "112"
[113] "113" "114" "115" "116" "117" "118" "119" "120" "121" "122" "123" "124" "125" "126"
[127] "127" "128" "129" "130" "131" "132" "133" "134" "135" "136" "137" "138" "139" "140"
[141] "141" "142" "143" "144" "145" "146" "147" "148" "149" "150"

> nrow(iris)
[1] 150

रो-नेम्स छोटे डेटासेट में अधिक सामान्य होते हैं और आपके डेटासेट में अवलोकनों को आसानी से पहचानने योग्य बनाने के लिए उपयोग होते हैं। उदाहरण के लिए, किसी डॉक्टर के मरीजों की स्वास्थ्य जानकारी वाले छोटे डेटासेट में रो-नेम्स मरीजों के पूरे नाम हो सकते हैं।

दूसरी ओर, कॉलम-नेम्स लगभग हर डेटासेट में होते हैं। आप इन्हें colnames() फ़ंक्शन या names() फ़ंक्शन से एक्सेस कर सकते हैं:

colnames(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

अपनी पंक्तियों और स्तंभों के नामों के आधार पर डेटासेट का सबसेट बनाने के लिए, फिर से अपने डेटासेट ऑब्जेक्ट के साथ प्रिफ़िक्स किए गए वर्ग कोष्ठक का ही उपयोग करें:


            # Sepal width of the fifth observation
            iris["5", "Sepal.Width"]

            # Sepal width and petal width
            iris[, c("Sepal.Width", "Petal.Width")]
            

यह ध्यान रखना महत्वपूर्ण है कि रो और कॉलम दोनों के नाम कैरैक्टर होते हैं, इसलिए सिंगल या डबल कोट का उपयोग बिल्कुल आवश्यक है!

मान (वैल्यू) के आधार पर पंक्तियों और स्तंभों का सबसेट

मान के आधार पर पंक्तियों और स्तंभों का सबसेट बनाना अक्सर सबसे अधिक लचीलापन देता है। उदाहरण के लिए, आप इस तरह का कंडीशनल स्टेटमेंट उपयोग करके Iris setosa का डेटा निकाल सकते हैं:

> iris[iris$Species == "setosa", ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa

...

47          5.1         3.8          1.6         0.2  setosa
48          4.6         3.2          1.4         0.2  setosa
49          5.3         3.7          1.5         0.2  setosa
50          5.0         3.3          1.4         0.2  setosa

iris$Species == "setosa" जैसे कंडीशनल स्टेटमेंट वर्ग कोष्ठक में रो वाले घटक में आते हैं (अर्थात्, कॉमा से पहले पहला घटक)। पहले घटक में कंडीशनल स्टेटमेंट के अलावा, आप दूसरे घटक में इंडेक्स या नाम से कॉलम निर्दिष्ट कर सकते हैं। नीचे दिए कंसोल में, केवल Iris setosa के सेपल माप चुनने का प्रयास करें:


        # Print sepal measurements for setosa
        

सारांश

इस ट्यूटोरियल में, आपने:

  • इंडेक्स के आधार पर अपने डेटा फ़्रेम का सबसेट बनाना सीखा। पंक्तियाँ और स्तंभ क्रमशः 1 से पंक्तियों/स्तंभों की संख्या तक पूर्णांकों के रूप में इंडेक्स होते हैं।
  • नाम के आधार पर अपने डेटा फ़्रेम का सबसेट बनाना सीखा। आपने सीखा कि रो-नेम्स शायद ही कभी निर्दिष्ट किए जाते हैं, और कॉलम-नेम्स कैरैक्टर प्रकार के होते हैं।
  • वर्ग कोष्ठकों के अंदर रो वाले घटक में कंडीशनल स्टेटमेंट का उपयोग करके मान के आधार पर डेटा फ़्रेम का सबसेट बनाना सीखा।
  • अधिक लचीले सबसेटिंग के लिए इन तरीकों को संयोजित करना सीखा (जैसे, पंक्तियों के लिए कंडीशनल का उपयोग और स्तंभों के लिए इंडेक्स या नाम से सबसेटिंग)।

नीचे कुछ अभ्यास दिए गए हैं जो आपने सीखा है उसे मज़बूत करने में मदद करेंगे। अभ्यास से ही निपुणता आती है, तो इन्हें ज़रूर आज़माएँ!

अभ्यास प्रश्न

वे सभी अवलोकन चुनें जिनमें सेपल की चौड़ाई पंखुड़ी की लंबाई से अधिक है।


        # Which observations have greater sepal width than petal length?
        

वे सभी Iris versicolor चुनें जिनकी सेपल चौड़ाई सभी प्रजातियों में औसत सेपल चौड़ाई से अधिक है।


        # Store the versicolor data as an object called versicolor


        # Select for all Iris versicolor that have bigger than average sepal width
        

उन सभी Iris virginica के लिए औसत सेपल चौड़ाई बताइए जिनकी पंखुड़ी की लंबाई 5 सेंटीमीटर से कम है।


        # You're free to approach this problem however you like!
        

क्या आप अपने डेटा से इनसाइट्स निकालने के अन्य तरीके सीखना चाहते हैं? DataCamp पर इन पाठ्यक्रमों को देखें!

हमारे Merging Datasets in R ट्यूटोरियल पर भी नज़र डालें।

चाहे आप यह तुलना कर रहे हों कि अलग-अलग जनसांख्यिकी समूह मार्केटिंग अभियानों पर कैसे प्रतिक्रिया देते हैं, किसी विशेष समय-सीमा पर ध्यान केंद्रित कर रहे हों, या इन्वेंटरी से कुछ चुने हुए उत्पादों की जानकारी निकाल रहे हों—डेटासेट का सबसेट बनाना आपको अपने डेटासेट से उपयोगी अवलोकन निकालने में सक्षम बनाता है। R ऐसा बेहतरीन टूल है जो डेटा का सबसेट बनाना आसान और सहज बनाता है। इस ट्यूटोरियल के अंत तक, आप अपने डेटासेट से मनचाही जानकारी निकालना जान जाएंगे।

डेटा का सबसेट बनाना आपके डेटा की सामग्री को नहीं बदलता, बल्कि केवल उस हिस्से का चयन करता है जो आपके लक्ष्य के लिए सबसे प्रासंगिक है। सामान्यतः, अपने डेटासेट की पंक्तियों और स्तंभों का सबसेट बनाने के तीन तरीके हैं—इंडेक्स के आधार पर, नाम के आधार पर, और मान (वैल्यू) के आधार पर।

इंडेक्स के आधार पर पंक्तियों और स्तंभों का सबसेट

अपनी पंक्तियों और स्तंभों का सबसेट बनाने का एक तरीका है अपने डेटासेट के इंडेसेज़ के आधार पर। यह वैसा ही है जैसे आप अपनी पंक्तियों और स्तंभों को इस तरह बताएं: "पहली पंक्ति", "दूसरे और पाँचवें स्तंभों में सभी पंक्तियाँ", या "दूसरे से पाँचवें स्तंभों में पहली पंक्ति"। आइए R में iris नामक डेटासेट का उपयोग करके ऐसे वाक्यों को निर्दिष्ट करें। इसकी डॉक्यूमेंटेशन के अनुसार, "यह प्रसिद्ध (Fisher या Anderson का) iris डेटासेट क्रमशः सेपल की लंबाई और चौड़ाई तथा पंखुड़ी की लंबाई और चौड़ाई के माप सेंटीमीटर में देता है, प्रत्येक 3 iris प्रजातियों में से 50 फूलों के लिए। प्रजातियाँ हैं Iris setosa, versicolor, और virginica."


          # "The first row":
          iris[1, ]

          # "All rows in second and fifth columns":
          iris[, c(2, 5)]

          # "The first row in second to fifth columns":
          iris[1, 2:5]
          

डेटा का सबसेट बनाने के लिए, आपके डेटासेट ऑब्जेक्ट के बाद वर्ग कोष्ठक का उपयोग किया जाता है। आपके डेटासेट की पंक्तियाँ वर्ग कोष्ठक के अंदर पहले घटक के रूप में दी जाती हैं, और स्तंभ दूसरे घटक के रूप में, जिन्हें कॉमा से अलग किया जाता है:

data[rows, columns]

नाम के आधार पर पंक्तियों और स्तंभों का सबसेट

R में, आपके डेटासेट की पंक्तियों और स्तंभों के नाम संबंधी गुण (एट्रिब्यूट) होते हैं। रो-नेम्स कम उपयोग होते हैं और डिफ़ॉल्ट रूप से इंडेक्स प्रदान करते हैं—पूर्णांक जो 1 से आपके डेटासेट की पंक्तियों की संख्या तक जाते हैं—ठीक वैसे ही जैसे आपने पिछली धारा में देखा। वास्तव में, यदि आप iris डेटासेट पर rownames() कॉल करेंगे, तो आप देखेंगे कि ये केवल 1 से 150 तक इंडेक्स हैं:

 > rownames(iris)
[1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12"  "13"  "14"
[15] "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24"  "25"  "26"  "27"  "28"
[29] "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36"  "37"  "38"  "39"  "40"  "41"  "42"
[43] "43"  "44"  "45"  "46"  "47"  "48"  "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"
[57] "57"  "58"  "59"  "60"  "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"
[71] "71"  "72"  "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84"
[85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96"  "97"  "98"
[99] "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108" "109" "110" "111" "112"
[113] "113" "114" "115" "116" "117" "118" "119" "120" "121" "122" "123" "124" "125" "126"
[127] "127" "128" "129" "130" "131" "132" "133" "134" "135" "136" "137" "138" "139" "140"
[141] "141" "142" "143" "144" "145" "146" "147" "148" "149" "150"

> nrow(iris)
[1] 150

रो-नेम्स छोटे डेटासेट में अधिक सामान्य होते हैं और आपके डेटासेट में अवलोकनों को आसानी से पहचानने योग्य बनाने के लिए उपयोग होते हैं। उदाहरण के लिए, किसी डॉक्टर के मरीजों की स्वास्थ्य जानकारी वाले छोटे डेटासेट में रो-नेम्स मरीजों के पूरे नाम हो सकते हैं।

दूसरी ओर, कॉलम-नेम्स लगभग हर डेटासेट में होते हैं। आप इन्हें colnames() फ़ंक्शन या names() फ़ंक्शन से एक्सेस कर सकते हैं:

colnames(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

अपनी पंक्तियों और स्तंभों के नामों के आधार पर डेटासेट का सबसेट बनाने के लिए, फिर से अपने डेटासेट ऑब्जेक्ट के साथ प्रिफ़िक्स किए गए वर्ग कोष्ठक का ही उपयोग करें:


            # Sepal width of the fifth observation
            iris["5", "Sepal.Width"]

            # Sepal width and petal width
            iris[, c("Sepal.Width", "Petal.Width")]
            

यह ध्यान रखना महत्वपूर्ण है कि रो और कॉलम दोनों के नाम कैरैक्टर होते हैं, इसलिए सिंगल या डबल कोट का उपयोग बिल्कुल आवश्यक है!

मान (वैल्यू) के आधार पर पंक्तियों और स्तंभों का सबसेट

मान के आधार पर पंक्तियों और स्तंभों का सबसेट बनाना अक्सर सबसे अधिक लचीलापन देता है। उदाहरण के लिए, आप इस तरह का कंडीशनल स्टेटमेंट उपयोग करके Iris setosa का डेटा निकाल सकते हैं:

> iris[iris$Species == "setosa", ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa

...

47          5.1         3.8          1.6         0.2  setosa
48          4.6         3.2          1.4         0.2  setosa
49          5.3         3.7          1.5         0.2  setosa
50          5.0         3.3          1.4         0.2  setosa

iris$Species == "setosa" जैसे कंडीशनल स्टेटमेंट वर्ग कोष्ठक में रो वाले घटक में आते हैं (अर्थात्, कॉमा से पहले पहला घटक)। पहले घटक में कंडीशनल स्टेटमेंट के अलावा, आप दूसरे घटक में इंडेक्स या नाम से कॉलम निर्दिष्ट कर सकते हैं। नीचे दिए कंसोल में, केवल Iris setosa के सेपल माप चुनने का प्रयास करें:


        # Print sepal measurements for setosa
        

सारांश

इस ट्यूटोरियल में, आपने:

  • इंडेक्स के आधार पर अपने डेटा फ़्रेम का सबसेट बनाना सीखा। पंक्तियाँ और स्तंभ क्रमशः 1 से पंक्तियों/स्तंभों की संख्या तक पूर्णांकों के रूप में इंडेक्स होते हैं।
  • नाम के आधार पर अपने डेटा फ़्रेम का सबसेट बनाना सीखा। आपने सीखा कि रो-नेम्स शायद ही कभी निर्दिष्ट किए जाते हैं, और कॉलम-नेम्स कैरैक्टर प्रकार के होते हैं।
  • वर्ग कोष्ठकों के अंदर रो वाले घटक में कंडीशनल स्टेटमेंट का उपयोग करके मान के आधार पर डेटा फ़्रेम का सबसेट बनाना सीखा।
  • अधिक लचीले सबसेटिंग के लिए इन तरीकों को संयोजित करना सीखा (जैसे, पंक्तियों के लिए कंडीशनल का उपयोग और स्तंभों के लिए इंडेक्स या नाम से सबसेटिंग)।

नीचे कुछ अभ्यास दिए गए हैं जो आपने सीखा है उसे मज़बूत करने में मदद करेंगे। अभ्यास से ही निपुणता आती है, तो इन्हें ज़रूर आज़माएँ!

अभ्यास प्रश्न

वे सभी अवलोकन चुनें जिनमें सेपल की चौड़ाई पंखुड़ी की लंबाई से अधिक है।


        # Which observations have greater sepal width than petal length?
        

वे सभी Iris versicolor चुनें जिनकी सेपल चौड़ाई सभी प्रजातियों में औसत सेपल चौड़ाई से अधिक है।


        # Store the versicolor data as an object called versicolor


        # Select for all Iris versicolor that have bigger than average sepal width
        

उन सभी Iris virginica के लिए औसत सेपल चौड़ाई बताइए जिनकी पंखुड़ी की लंबाई 5 सेंटीमीटर से कम है।


        # You're free to approach this problem however you like!
        

क्या आप अपने डेटा से इनसाइट्स निकालने के अन्य तरीके सीखना चाहते हैं? DataCamp पर इन पाठ्यक्रमों को देखें!

हमारे Merging Datasets in R ट्यूटोरियल पर भी नज़र डालें।

विषय