如何在 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