我有一张看起来像这样的表,
ID c1 c2 c3 c4
A 23 12 45 63
A 3 1 6 17
B 3 1 4 6
B 2 2 5 3
我想最终得到类似的东西,
ID c1 c2 c3 c4
A 26 13 51 80
B 5 3 9 9
其中,每个单元格是映射到相同id的值的总和。
我想用R.解决这个问题。有什么想法吗?我知道如果想要对列中的所有值求和,我可以使用colsums,但我不确定如何根据标准对值进行求和。
任何帮助将不胜感激。
拉姆
P.S:我的实际表有45000行和72列。
答案 0 :(得分:3)
尝试
aggregate( . ~ ID, data = x, FUN = sum)
ID c1 c2 c3 c4
1 A 26 13 51 80
2 B 5 3 9 9
答案 1 :(得分:2)
plyr
library(plyr)
ddply(x, .(ID), numcolwise(sum))
ID c1 c2 c3 c4
1 A 26 13 51 80
2 B 5 3 9 9
答案 2 :(得分:2)
更快的选择:
library(data.table)
dt = data.table(df)
dt[, lapply(.SD, sum), by = ID]
# ID c1 c2 c3 c4
#1: A 26 13 51 80
#2: B 5 3 9 9