Dplyr: यदि कॉलम में एक स्ट्रिंग है तो किसी वेरिएबल को कैसे बदलें


यदि किसी कॉलम में कोई विशेष स्ट्रिंग है तो आप किसी वैरिएबल को बदलने के लिए dplyr में निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 library (dplyr)

df %>% mutate_at(vars(contains(' starter ')), ~ (scale(.) %>% as. vector ))

यह विशेष सिंटैक्स डेटा फ़्रेम में प्रत्येक वेरिएबल पर स्केल() फ़ंक्शन लागू करता है जिसमें कॉलम नाम में स्ट्रिंग “स्टार्टर” होता है।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: यदि कॉलम में एक स्ट्रिंग है तो वेरिएबल को बदलें

मान लीजिए कि हमारे पास R में निम्नलिखित डेटा फ़्रेम है:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F'),
                 starter_points=c(22, 26, 25, 13, 15, 22),
                 starter_assists=c(4, 5, 10, 14, 12, 10),
                 bench_points=c(7, 7, 9, 14, 13, 10),
                 bench_assists=c(2, 5, 5, 4, 9, 14))

#view data frame
df

  team starter_points starter_assists bench_points bench_assists
1 to 22 4 7 2
2 B 26 5 7 5
3 C 25 10 9 5
4 D 13 14 14 4
5 E 15 12 13 9
6 F 22 10 10 14

हम डेटा फ़्रेम में प्रत्येक वेरिएबल पर स्केल() फ़ंक्शन को लागू करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं जिसमें कॉलम नाम में स्ट्रिंग “स्टार्टर” शामिल है।

 library (dplyr)

#apply scale() function to each variable that contains 'starter' in the name
df %>% mutate_at(vars(contains(' starter ')), ~ (scale(.) %>% as. vector ))

  team starter_points starter_assists bench_points bench_assists
1 A 0.2819668 -1.3180158 7 2
2 B 1.0338784 -1.0629159 7 5
3 C 0.8459005 0.2125832 9 5
4 D -1.4098342 1.2329825 14 4
5 E -1.0338784 0.7227828 13 9
6 F 0.2819668 0.2125832 10 14

इस सिंटैक्स का उपयोग करते हुए, हम “स्टार्टर” वाले प्रत्येक कॉलम को स्केल करने के लिए स्केल() फ़ंक्शन को लागू करने में सक्षम थे, ताकि उनके मानों का अब माध्य 0 और मानक विचलन 1 हो।

ध्यान दें कि निम्नलिखित कॉलम संशोधित किए गए हैं:

  • स्टार्टर_प्वाइंट
  • स्टार्टर_असिस्ट

अन्य सभी कॉलम अपरिवर्तित रहे.

यह भी ध्यान दें कि हम इस सिंटैक्स का उपयोग करके अपनी इच्छानुसार कोई भी फ़ंक्शन लागू कर सकते हैं।

पिछले उदाहरण में, हमने नाम में स्ट्रिंग “स्टार्टर” के साथ प्रत्येक कॉलम को स्केल करना चुना।

हालाँकि, हम कुछ सरल कर सकते हैं, जैसे नाम में “स्टार्टर” वाले प्रत्येक कॉलम के लिए मानों को दो से गुणा करना:

 library (dplyr)

#multiply values by two for each variable that contains 'starter' in the name
df %>% mutate_at(vars(contains(' starter ')), ~ (. * 2 ))

  team starter_points starter_assists bench_points bench_assists
1 A 44 8 7 2
2 B 52 10 7 5
3 C 50 20 9 5
4 D 26 28 14 4
5 E 30 24 13 9
6 F 44 20 10 14

ध्यान दें कि स्टार्टर_पॉइंट्स और स्टार्टर_असिस्ट्स कॉलम के मान दो से गुणा कर दिए गए हैं, जबकि अन्य सभी कॉलम अपरिवर्तित रहे हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि dplyr में अन्य सामान्य कार्य कैसे करें:

Dplyr का उपयोग करके पंक्तियों को कैसे हटाएं
Dplyr का उपयोग करके इंडेक्स द्वारा कॉलम का चयन कैसे करें
Dplyr का उपयोग करके एक निश्चित स्ट्रिंग वाली पंक्तियों को कैसे फ़िल्टर करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *