Dplyr का उपयोग करके समूह द्वारा पहली पंक्ति का चयन कैसे करें


अक्सर, आप R में dplyr पैकेज का उपयोग करके प्रत्येक समूह की पहली पंक्ति का चयन करना चाह सकते हैं। ऐसा करने के लिए आप निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 df %>%
  group_by (group_var) %>%
  arrange (values_var) %>%
  filter (row_number()== 1 )

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

उदाहरण: आर में समूह द्वारा पहली पंक्ति का चयन करें

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

 #create dataset
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C' ),
                 points=c(4, 9, 7, 7, 6, 13, 8, 8, 4, 17))

#view dataset
df

   team points
1 to 4
2 to 9
3 to 7
4 B 7
5 B 6
6 B 13
7 C 8
8 C 8
9 C 4
10 C 17

निम्नलिखित कोड दिखाता है कि R में समूह द्वारा पहली पंक्ति का चयन करने के लिए dplyr पैकेज का उपयोग कैसे करें:

 library (dplyr)

df %>%
  group_by (team) %>%
  arrange (points) %>%
  filter (row_number()== 1 )

# A tibble: 3 x 2
# Groups: team [3]
  team points
    
1 to 4
2 C 4
3 B 6

डिफ़ॉल्ट रूप से, अरेंज() मानों को आरोही क्रम में क्रमबद्ध करता है लेकिन हम मानों को अवरोही क्रम में आसानी से क्रमबद्ध कर सकते हैं:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== 1 )

# A tibble: 3 x 2
# Groups: team [3]
  team points
    
1 C 17
2 B 13
3 to 9

ध्यान दें कि आप प्रत्येक समूह में nवीं पंक्ति का चयन करने के लिए इस कोड को आसानी से संशोधित कर सकते हैं। बस row_number() == n बदलें।

उदाहरण के लिए, यदि आप समूह द्वारा दूसरी पंक्ति का चयन करना चाहते हैं, तो आप निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== 2 )

या आप समूह द्वारा अंतिम पंक्ति का चयन करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== n() )

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

आर में लाइनों को कैसे व्यवस्थित करें?
आर में प्रति समूह अवलोकनों की गणना कैसे करें
आर में प्रति समूह अधिकतम मूल्य कैसे प्राप्त करें

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

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