R语言 如何执行SUMIF函数

R语言 如何执行SUMIF函数

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

这个函数用于对数据进行分组,并通过数据框中的一组数值获得数值的总和,所以我们要在数据框中执行这个操作。

方法1:在一列上执行SUMIF函数

在这个方法中,要在一列上执行SUMIF()函数,用户需要用下面提到的必要参数调用聚合函数,以便在R语言中得到相应的结果。

语法

aggregate(column_sum ~ group_column, dataframe, sum)
Bash

例子

在这个例子中,我们将创建一个有4列的数据框架,在第一个操作中,我们通过执行分组对科目进行sumif操作以获得分数的总和,在第二个操作中,我们通过执行分组对科目进行sumif操作以获得id的总和。

# 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))
Bash

输出

  subjects marks
1     java   190
2      php   274

  subjects id
1     java  4
2      php 11
Bash

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

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

语法:

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

例子

在这个例子中,我们将通过对科目进行sumif操作,用R编程语言进行分组,得到id和分数的总和。

# 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))
Bash

输出

  subjects marks id
1     java   190  4
2      php   274 11
Bash

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

在这个方法中,要对给定数据框的所有列执行sumif函数,用户只需调用基本R语言的aggregate()函数,并将数据框的名称作为参数传入其中,如下面的语法所示,以获得在R语言中对整个数据框执行sumif函数的结果。

语法

aggregate(. ~ group_column, dataframe, sum)
Bash

例子

在这个例子中,我们通过对科目进行sumif操作,使用R语言中的aggregate()函数进行分组,得到所有列的总和。

# 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))
Bash

输出

  subjects id marks
1     java  4   190
2      php 11   274
Bash

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册