Dplyr में केस_व्हेन() का उपयोग कैसे करें


R में dplyr पैकेज से केस_व्हेन() फ़ंक्शन का उपयोग मौजूदा वेरिएबल्स से नए वेरिएबल बनाने के लिए किया जा सकता है।

यह फ़ंक्शन निम्नलिखित मूल सिंटैक्स का उपयोग करता है:

 library (dplyr)

df %>%
  mutate (new_var = case_when (var1 < 15 ~ ' low ',
                             var2 < 25 ~ ' med ',
                             TRUE ~ ' high '))

ध्यान दें कि TRUE “अन्य” कथन के बराबर है।

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित डेटा फ़्रेम के साथ व्यवहार में इस फ़ंक्शन का उपयोग कैसे करें:

 #create data frame
df <- data. frame (player = c('AJ', 'Bob', 'Chad', 'Dan', 'Eric', 'Frank'),
                 position = c('G', 'F', 'F', 'G', 'C', NA),
                 points = c(12, 15, 19, 22, 32, NA),
                 assists = c(5, 7, 7, 12, 11, NA))

#view data frame
df

  player position points assists
1 AJ G 12 5
2 Bob F 15 7
3 Chad F 19 7
4 Dan G 22 12
5 Eric C 32 11
6 Frank NA NA NA

उदाहरण 1: मौजूदा वेरिएबल से एक नया वेरिएबल बनाएं

निम्नलिखित कोड दिखाता है कि गुणवत्ता नामक एक नया वैरिएबल कैसे बनाया जाए जिसका मान अंक कॉलम से प्राप्त होता है:

 df %>%
mutate (quality = case_when (points > 20 ~ ' high ',
                             points > 15 ~ ' med ',
                             TRUE ~ ' low ' ))

  player position points assists quality
1 AJ G 12 5 low
2 Bob F 15 7 low
3 Chad F 19 7 med
4 Dan G 22 12 high
5 Eric C 32 11 high
6 Frank NA NA NA low

यहां बताया गया है कि कैसे केस_व्हेन() फ़ंक्शन ने नए कॉलम के लिए मान बनाए:

  • यदि अंक कॉलम में मान 20 से अधिक है, तो गुणवत्ता कॉलम में मान “उच्च” है।
  • अन्यथा, यदि अंक कॉलम में मान 15 से अधिक है, तो गुणवत्ता कॉलम में मान “मेड” है।
  • अन्यथा, यदि अंक कॉलम में मान 15 से कम या उसके बराबर है (या एनए जैसा लुप्त मान), तो गुणवत्ता कॉलम में मान “कम” है।

उदाहरण 2: अनेक वेरिएबल्स से एक नया वेरिएबल बनाएं

निम्नलिखित कोड दिखाता है कि गुणवत्ता नामक एक नया वैरिएबल कैसे बनाया जाए जिसका मान बिंदुओं और सहायता कॉलम से प्राप्त होता है:

 df %>%
mutate (quality = case_when (points > 15 & assists > 10 ~ ' great ',
                             points > 15 & assists > 5 ~ ' good ',
                             TRUE ~ ' average ' ))

  player position points assists quality
1 AJ G 12 5 average
2 Bob F 15 7 average
3 Chad F 19 7 good
4 Dan G 22 12 great
5 Eric C 32 11 great
6 Frank NA NA NA average

ध्यान दें कि हम NA मानों के लिए स्ट्रिंग्स को स्पष्ट रूप से निर्दिष्ट करने के लिए is.na() फ़ंक्शन का भी उपयोग कर सकते हैं:

 df %>%
mutate (quality = case_when (is. na (points) ~ ' missing ',
                             points > 15 & assists > 10 ~ ' great ',
                             points > 15 & assists > 5 ~ ' good ',
                             TRUE ~ ' average ' ))

  player position points assists quality
1 AJ G 12 5 average
2 Bob F 15 7 average
3 Chad F 19 7 good
4 Dan G 22 12 great
5 Eric C 32 11 great
6 Frank NA NA NA missing

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

आर में लाइनों को कैसे व्यवस्थित करें?
आर में प्रति समूह अवलोकनों की गणना कैसे करें
आर में एक निश्चित स्ट्रिंग वाली पंक्तियों को कैसे फ़िल्टर करें

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

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