आर में समूह द्वारा योग की गणना कैसे करें (उदाहरण के साथ)
अक्सर आप आर में प्रति समूह योग की गणना करना चाह सकते हैं। ऐसा करने के लिए आप तीन तरीकों का उपयोग कर सकते हैं:
विधि 1: आर बेस का उपयोग करें।
aggregate(df$col_to_aggregate, list(df$col_to_group_by), FUN= sum )
विधि 2: dplyr() पैकेज का उपयोग करें।
library (dplyr)
df %>%
group_by (col_to_group_by) %>%
summarize (Freq = sum (col_to_aggregate))
विधि 3: data.table पैकेज का उपयोग करें।
library (data.table)
dt[ ,list(sum= sum (col_to_aggregate)), by=col_to_group_by]
निम्नलिखित उदाहरण दिखाते हैं कि व्यवहार में इनमें से प्रत्येक विधि का उपयोग कैसे करें।
विधि 1: आर आधार का उपयोग करके प्रति समूह योग की गणना करें
निम्नलिखित कोड दिखाता है कि निम्नलिखित डेटा फ्रेम में टीम द्वारा बनाए गए अंकों के योग की गणना करने के लिए आर डेटाबेस के एग्रीगेट () फ़ंक्शन का उपयोग कैसे करें:
#create data frame df <- data.frame(team=c('a', 'a', 'b', 'b', 'b', 'c', 'c'), pts=c(5, 8, 14, 18, 5, 7, 7), rebs=c(8, 8, 9, 3, 8, 7, 4)) #view data frame df team pts rebs 1 to 5 8 2 to 8 8 3 b 14 9 4 b 18 3 5 b 5 8 6 c 7 7 7 c 7 4 #find sum of points scored by team aggregate(df$pts, list(df$team), FUN= sum ) Group.1 x 1 to 13 2 b 37 3 v 14
विधि 2: dplyr का उपयोग करके समूह द्वारा योग की गणना करें
निम्नलिखित कोड दिखाता है कि निम्नलिखित डेटा फ़्रेम में टीम द्वारा प्राप्त अंकों के योग की गणना करने के लिए dplyr पैकेज के ग्रुप_बी() और सारांश() फ़ंक्शन का उपयोग कैसे करें:
library (dplyr)
#create data frame
df <- data.frame(team=c('a', 'a', 'b', 'b', 'b', 'c', 'c'),
pts=c(5, 8, 14, 18, 5, 7, 7),
rebs=c(8, 8, 9, 3, 8, 7, 4))
#find sum of points scored by team
df %>%
group_by (team) %>%
summarize (Freq = sum (pts))
# A tibble: 3 x 2
team Freq
<chr> <dbl>
1 to 13
2 b 37
3 v 14
विधि 3: डेटा.टेबल का उपयोग करके समूह द्वारा योग की गणना करें
निम्नलिखित कोड दिखाता है कि निम्नलिखित डेटा फ़्रेम में टीम द्वारा प्राप्त अंकों के योग की गणना करने के लिए डेटा.टेबल पैकेज का उपयोग कैसे करें:
library (data.table)
#create data frame
df <- data.frame(team=c('a', 'a', 'b', 'b', 'b', 'c', 'c'),
pts=c(5, 8, 14, 18, 5, 7, 7),
rebs=c(8, 8, 9, 3, 8, 7, 4))
#convert data frame to data table
setDT(df)
#find sum of points scored by team
df[,list(sum= sum (pts)), by=team]
team sum
1:a 13
2:b37
3:c14
ध्यान दें कि सभी तीन विधियाँ समान परिणाम लौटाती हैं।
नोट: यदि आपके पास बहुत बड़ा डेटा सेट है, तो data.table विधि यहां सूचीबद्ध तीन विधियों में से सबसे तेज़ काम करेगी।
अतिरिक्त संसाधन
आर में प्रति समूह माध्य की गणना कैसे करें
आर में समूह द्वारा मात्राओं की गणना कैसे करें