按规则在R中聚合值

时间:2016-02-23 05:49:02

标签: r aggregate

我正在对具有太多分类级别的数据进行回归分析。我想知道如何聚合多个分类级别的值?例如,让我们有两列A(分类)和B(数字)的数据:

A   B
1   1
1   0
2   3
2   0
3   1
3   2
4   6
4   0

现在我想在分类变量A中组合相邻级别。聚合函数是求和。结果应如下所示:

A     B
A1-2  4
A3-4  9

感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

Base R方法:

aggregate(B ~ A, data=transform(dat, A=cut(A,c(0,2,4),labels=c("A1-2","A3-4")) ), FUN=sum)

#     A B
#1 A1-2 4
#2 A3-4 9

答案 1 :(得分:1)

我们可以使用data.table。将'data.frame'转换为'data.table'(setDT(df1)),根据'A'中的值使用%/%创建一个新的分组变量。然后,按“A1”分组,我们得到'B'的sum和'{'}中的paste元素。如果不需要,可以将分组变量“A1”指定为NULL。

unique