R语言 如何聚合多列
在这篇文章中,我们将讨论如何在R编程语言中聚合多列。
聚合意味着结合两个或更多的数据。在这里,我们将使用聚合函数来获得数据框中一个或多个变量的汇总统计。
语法:
aggregate(sum_column ~ group_column, data, FUN)
其中。
- data是输入的数据框
- sum_column是可以汇总的列
- group_column是要分组的列。
- FUN指的是像sum、mean、min、max等函数。
例子 :
让我们来创建一个数据框架
# create the dataframe with 4 columns
data = data.frame(subjects=c("java", "python", "java",
"java", "php", "php"),
id=c(1, 2, 3, 4, 5, 6),
names=c("manoj", "sai", "mounika",
"durga", "deepika", "roshan"),
marks=c(89, 89, 76, 89, 90, 67))
# display
data
输出 :
例1: 总结一个变量并按一个变量分组
在这里,我们将通过对一个变量的分组来获得一个变量的摘要。
语法:
aggregate(sum_column ~ group_column, data, FUN=sum)
在这个例子中,我们将使用sum函数,通过对科目进行分组来获得一些分数。
# create the dataframe with 4 columns
data = data.frame(subjects=c("java", "python", "java",
"java", "php", "php"),
id=c(1, 2, 3, 4, 5, 6),
names=c("manoj", "sai", "mounika",
"durga", "deepika", "roshan"),
marks=c(89, 89, 76, 89, 90, 67))
# get sum of marks by grouping with subjects
aggregate(marks~ subjects, data, FUN=sum)
输出 :
例2:总结一个变量并按多个变量分组
在这里,我们将通过将一个变量与一个或多个变量分组来获得一个变量的摘要。我们必须使用+运算符对多列进行分组。
语法:
aggregate(sum_column ~ group_column1+group_column2+……………group_columnn, data, FUN=sum)
在这个例子中,我们将对姓名和科目进行分组,以获得分数的总和。
# create the dataframe with 4 columns
data = data.frame(subjects=c("java", "python", "java",
"java", "php", "php"),
id=c(1, 2, 3, 4, 5, 6),
names=c("manoj", "sai", "mounika",
"durga", "deepika", "roshan"),
marks=c(89, 89, 76, 89, 90, 67))
# get sum of marks by grouping with subjects and names
aggregate(marks~ subjects+names, data, FUN=sum)
输出 :
例3:汇总多个变量并按一个变量分组
在这里,我们将通过对一个变量的分组来获得一个或多个变量的摘要。我们将使用cbind()函数(称为列绑定)来获得多个变量的摘要。
语法:
aggregate(cbind(sum_column1,sum_column2,., sum_column n) ~ group_column1+group_column2+……………group_columnn, data, FUN=sum)
在这个例子中,我们将通过对科目进行分组来获得分数和ID的总和。
# create the dataframe with 4 columns
data = data.frame(subjects=c("java", "python", "java",
"java", "php", "php"),
id=c(1, 2, 3, 4, 5, 6),
names=c("manoj", "sai", "mounika",
"durga", "deepika", "roshan"),
marks=c(89, 89, 76, 89, 90, 67))
# get sum of marks and id by grouping with subjects
aggregate(cbind(marks, id)~ subjects, data, FUN=sum)
输出 :
例四:汇总多个变量&按多个变量分组
在这里,我们要通过对一个或多个变量进行分组来获得一个或多个变量的摘要。我们可以使用cbind()来组合一个或多个变量,使用’+’运算符来对多个变量进行分组。
语法:
aggregate(cbind(sum_column1,.,sum_column n)~group_column1+….+group_column n, data, FUN=sum)
在这个例子中,我们将通过对科目和姓名进行分组来获得分数和ID的总和。
# create the dataframe with 4 columns
data = data.frame(subjects=c("java", "python", "java",
"java", "php", "php"),
id=c(1, 2, 3, 4, 5, 6),
names=c("manoj", "sai", "mounika",
"durga", "deepika", "roshan"),
marks=c(89, 89, 76, 89, 90, 67))
# get sum of marks and id by grouping
# with subjects and names
aggregate(cbind(marks, id)~ subjects+names, data, FUN=sum)
输出: