R语言 如何计算组的总和

R语言 如何计算组的总和

在这篇文章中,我们将看到如何在R编程语言中计算按组计算的总和。

演示的数据

# creating data frame
df <- data.frame(Sub = c('Math', 'Math', 'Phy', 'Phy', 
                         'Phy', 'Che', 'Che'),
                 Marks = c(8, 2, 4, 9, 9, 7, 1),
                 Add_on = c(3, 1, 9, 4, 7, 8, 2))
  
# view dataframe
df

输出

Sub    Marks    Add_on
Math    8    3
Math    2    1
Phy    4    9
Phy    9    4
Phy    9    7
Che    7    8
Che    1    2

方法1:使用Base R中的aggregate()方法

aggregate()函数是用来获取各组数据的汇总统计数据的。这些统计数据包括平均值、最小值、总和、最大值等。

语法: aggregate(dataframeaggregate_column, list(dataframegroup_column), FUN)

其中

  • dataframe是输入的数据框。
  • aggreg_column是数据框架中要聚合的列。
  • group_column是要用FUN分组的列。
  • FUN代表sum/mean/min/max。
# creating data frame
df <- data.frame(Sub = c('Math', 'Math', 'Phy', 'Phy', 
                         'Phy', 'Che', 'Che'),
                 Marks = c(8, 2, 4, 9, 9, 7, 1),
                 Add_on = c(3, 1, 9, 4, 7, 8, 2))
  
aggregate(dfMarks, list(dfSub), FUN=sum)
aggregate(dfAdd_on, list(dfSub), FUN=sum)

输出

Group.1    x
Che    8
Math    10
Phy    22

Group.1    x
Che    10
Math    4
Phy    20

方法2:使用dplyr()包

使用 group_by() 函数,然后使用 summaryise()函数 ,执行适当的操作。

library(dplyr) 
df %>%                                       
  group_by(Sub) %>%
  summarise_at(vars(Marks),
               list(name = sum))

输出

Sub    name
Che    8
Math    10
Phy    22

方法3:使用data.table

data.table软件包来计算一个球队的得分之和。

library(data.table) 
  
# convert data frame to data table 
setDT(df)
  
# find sum of points scored by sub 
df[ ,list(sum=sum(Marks)), by=Sub]

输出

Sub sum
Math 10
Phy 22
Che 8

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程