📜  如何在 R 中执行 SUMIF函数?

📅  最后修改于: 2022-05-13 01:55:48.494000             🧑  作者: Mango

如何在 R 中执行 SUMIF函数?

在本文中,我们将讨论 R 编程语言中的 sumif函数。

该函数用于对数据进行分组,并通过数据帧中的一组值得到值的总和,因此我们将对数据帧执行此操作。

方法 1:对一列执行 SUMIF函数:

在这种对一列执行 SUMIF()函数的方法中,用户需要使用如下所述的所需参数调用聚合函数,以便在 R 语言中得到相应的结果。

句法:

aggregate(column_sum ~ group_column, dataframe, sum)

例子:

在这个例子中,我们将创建一个有 4 列的数据框,在第一个操作中,我们通过执行 group 来对主题执行 sumif 操作以获得标记的总和,在第二个操作中,我们正在对主题执行 sumif 操作通过执行 group 来获得 id 的总和。

R
# create a dataframe
data = data.frame(id=c(1, 2, 3, 4, 5),
                  name=c('rupa', 'rani', 'radha', 'ramu', 'roja'),
                  subjects=c('java', 'php', 'java', 'php', 'php'),
                  marks=c(100, 98, 90, 87, 89))
  
# sumif operation on subjects by
# performing group to get sum of marks
print(aggregate(marks ~ subjects, data, sum))
  
# sumif operation on subjects by
# performing group to get sum of id
print(aggregate(id~ subjects, data, sum))


R
# create a dataframe
data=data.frame(id=c(1,2,3,4,5),
                name=c('rupa','rani','radha','ramu','roja'),
                subjects=c('java','php','java','php','php'),
                marks=c(100,98,90,87,89))
  
# sumif operation on subjects by performing
# group to get sum of id and sum of marks
print(aggregate(cbind(marks,id)~ subjects, data, sum))


R
# create a dataframe
data=data.frame(id=c(1,2,3,4,5),
                subjects=c('java','php','java','php','php'),
                marks=c(100,98,90,87,89))
  
# sumif operation on subjects by 
# performing group to get sum of all columns
print(aggregate(. ~ subjects, data, sum))


输出:

subjects marks
1     java   190
2      php   274

  subjects id
1     java  4
2      php 11

方法 2:对多列执行 SUMIF函数

在这种对给定数据帧的多列执行 SUMIF函数的方法中,用户需要调用带有 cbind()函数作为参数的 aggregate()函数,如下面的语法所示,以获取多列的 sumif函数R 编程语言中的给定数据框。

语法

aggregate(cbind(column_sum1,column_sum2,..,) ~ group_column, dataframe, sum)

例子:

在此示例中,我们将通过执行一个组来对主题执行 sumif 操作,以获取 R 编程语言中的 id 和标记之和。

R

# create a dataframe
data=data.frame(id=c(1,2,3,4,5),
                name=c('rupa','rani','radha','ramu','roja'),
                subjects=c('java','php','java','php','php'),
                marks=c(100,98,90,87,89))
  
# sumif operation on subjects by performing
# group to get sum of id and sum of marks
print(aggregate(cbind(marks,id)~ subjects, data, sum))

输出:

subjects marks id
1     java   190  4
2      php   274 11

方法 3:对所有列执行 SUMIF函数

在此方法中,要对给定数据帧的所有列执行 sumif函数,用户只需调用 base R 的 aggregate()函数并将数据帧的名称作为参数传递给它,如下面的语法所示得到结果以在 R 语言中对整个数据帧执行 sumif函数。

句法:

aggregate(. ~ group_column, dataframe, sum)

例子:

在此示例中,我们通过使用 R 语言中的 aggregate()函数执行一个组来获取所有列的总和,从而对主题执行 sumif 操作。

R

# create a dataframe
data=data.frame(id=c(1,2,3,4,5),
                subjects=c('java','php','java','php','php'),
                marks=c(100,98,90,87,89))
  
# sumif operation on subjects by 
# performing group to get sum of all columns
print(aggregate(. ~ subjects, data, sum))

输出:

subjects id marks
1     java  4   190
2      php 11   274