Dplyr: एकाधिक शर्तों के साथ mutate() का उपयोग कैसे करें


आप एकाधिक स्थितियों के आधार पर एक नया कॉलम बनाने के लिए mutate() फ़ंक्शन का उपयोग करने के लिए dplyr में निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 library (dplyr)

df <- df%>% mutate(class = case_when((team == ' A ' & points >= 20) ~ ' A_Good ',
                                     (team == ' A ' & points < 20) ~ ' A_Bad ',
                                     (team == ' B ' & points >= 20) ~ ' B_Good ',
                                      TRUE ~ ' B_Bad '))

यह विशेष सिंटैक्स क्लास नामक एक नया कॉलम बनाता है जो निम्नलिखित मान लेता है:

  • A_अच्छा है यदि टीम A के बराबर है और अंक 20 से अधिक या उसके बराबर हैं।
  • A_खराब यदि टीम A के बराबर है और अंक 20 से कम हैं।
  • B_अच्छा है यदि टीम B के बराबर है और अंक 20 से अधिक या उसके बराबर हैं।
  • यदि पिछली कोई भी शर्त पूरी नहीं होती तो B_खराब

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

संबंधित: dplyr में केस_व्हेन() का उपयोग कैसे करें

उदाहरण: कई शर्तों के साथ dplyr में mutate() का उपयोग करें

मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जिसमें विभिन्न बास्केटबॉल खिलाड़ियों के बारे में जानकारी है:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'),
                 points=c(22, 30, 34, 19, 14, 12, 39, 15, 22, 25))

#view data frame
df

   team points
1 to 22
2 to 30
3 to 34
4 to 19
5 to 14
6 B 12
7 B 39
8 B 15
9 B 22
10 B 25

हम क्लास नामक एक नया कॉलम बनाने के लिए mutate() फ़ंक्शन के साथ निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं, जिसका मान टीम और पॉइंट कॉलम में मानों पर आधारित होता है:

 library (dplyr)
#add new column based on values in team and points columns
df <- df%>% mutate(class = case_when((team == ' A ' & points >= 20) ~ ' A_Good ',
                                     (team == ' A ' & points < 20) ~ ' A_Bad ',
                                     (team == ' B ' & points >= 20) ~ ' B_Good ',
                                      TRUE ~ ' B_Bad '))

#view updated data frame
df

   team points class
1 A 22 A_Good
2 A 30 A_Good
3 A 34 A_Good
4 A 19 A_Bad
5 A 14 A_Bad
6 B 12 B_Bad
7 B 39 B_Good
8 B 15 B_Bad
9 B 22 B_Good
10 B 25 B_Good

  नया क्लास कॉलम टीम और पॉइंट कॉलम में मानों के आधार पर मान लेता है।

उदाहरण के लिए, पहली पंक्ति में टीम कॉलम में A का मान था और अंक का मान 20 से अधिक या उसके बराबर था, इसलिए इसे नए क्लास कॉलम में A_Good का मान प्राप्त हुआ।

ध्यान दें कि इस उदाहरण में, हमने क्लास कॉलम में मान निर्दिष्ट करने से पहले यह जांचने के लिए कि क्या दोनों स्थितियाँ सत्य थीं, “AND” ऑपरेटर के रूप में & प्रतीक का उपयोग किया था।

हालाँकि, हम | का उपयोग कर सकते थे इसके बजाय क्लास कॉलम में मान निर्दिष्ट करने से पहले यह जांचने के लिए कि दोनों में से कोई भी शर्त पूरी हुई है या नहीं, “OR” ऑपरेटर के रूप में प्रतीक का उपयोग करें।

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

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

dplyr: यदि कॉलम में एक स्ट्रिंग है तो किसी वेरिएबल को कैसे बदलें
dplyr: mutate() का उपयोग करके कारक स्तर कैसे बदलें
dplyr: पार () फ़ंक्शन का उपयोग कैसे करें

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

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