Dplyr का उपयोग करके सापेक्ष आवृत्तियों की गणना कैसे करें


अक्सर आप आर में डेटा फ्रेम के एक या अधिक कॉलम में मूल्यों की सापेक्ष आवृत्तियों/अनुपात की गणना करना चाह सकते हैं।

सौभाग्य से, dplyr पैकेज में फ़ंक्शंस का उपयोग करके ऐसा करना आसान है। यह ट्यूटोरियल दिखाता है कि निम्नलिखित डेटा फ़्रेम पर सापेक्ष आवृत्तियों की गणना करने के लिए इन फ़ंक्शन का उपयोग कैसे करें:

 #create data frame
df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'),
                 points = c(12, 15, 19, 22, 32, 34, 39))

#view data frame
df

  team position points
1 AG 12
2 AF15
3 FY 19
4 BG 22
5 BG 32
6 BG 34
7 BF 39

उदाहरण 1: एक चर की सापेक्ष आवृत्ति

निम्नलिखित कोड दिखाता है कि डेटा फ़्रेम में प्रत्येक टीम की सापेक्ष आवृत्ति की गणना कैसे करें:

 library(dplyr)

df %>%
  group_by (team) %>%
  summarize (n = n()) %>%
  mutate (freq = n / sum(n))

# A tibble: 2 x 3
  team n freq
    
1 to 3 0.429
2 B 4 0.571

यह हमें बताता है कि टीम ए डेटा फ्रेम में सभी पंक्तियों का 42.9% हिस्सा रखती है जबकि टीम बी शेष 57.1% पंक्तियों का हिस्सा है। ध्यान दें कि एक साथ उनका योग 100% हो जाता है।

संबंधित: संपूर्ण गाइड: आर में डेटा को समूहीकृत और सारांशित कैसे करें

उदाहरण 2: कई चरों की सापेक्ष आवृत्ति

निम्नलिखित कोड दिखाता है कि प्रति टीम पदों की सापेक्ष आवृत्ति की गणना कैसे करें:

 library(dplyr)

df %>%
  group_by (team, position) %>%
  summarize (n = n()) %>%
  mutate (freq = n / sum(n))

# A tibble: 4 x 4
# Groups: team [2]
  team position n freq
       
1 AF 2 0.667
2 AG 1 0.333
3 BF 1 0.250
4 BG 3 0.750

यह हमें बताता है कि:

  • टीम A के 66.7% खिलाड़ी स्थान F पर हैं।
  • टीम A के 33.3% खिलाड़ी स्थान G पर हैं।
  • टीम A के 25.0% खिलाड़ी स्थान F पर हैं।
  • टीम बी के 75.0% खिलाड़ी जी स्थान पर हैं।

संबंधित: आर में नए वेरिएबल बनाने के लिए म्यूटेट का उपयोग कैसे करें

उदाहरण 3: सापेक्ष आवृत्तियों को प्रतिशत के रूप में दिखाएँ

निम्नलिखित कोड दिखाता है कि टीम द्वारा पदों की सापेक्ष आवृत्ति की गणना कैसे करें और इन सापेक्ष आवृत्तियों को प्रतिशत के रूप में कैसे प्रदर्शित करें:

 library(dplyr)

df %>%
  group_by (team, position) %>%
  summarize (n = n()) %>%
  mutate (freq = paste0(round(100 * n/sum(n), 0), ' % '))

# A tibble: 4 x 4
# Groups: team [2]
  team position n freq 
       
1 AF 2 67%  
2 GA 1 33%  
3 BF 1 25%  
4 BG 3 75%

आप यहां अधिक आर ट्यूटोरियल पा सकते हैं।

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

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