我正在对具有太多分类级别的数据进行回归分析。我想知道如何聚合多个分类级别的值?例如,让我们有两列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
感谢任何帮助。
答案 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