【发布时间】:2014-12-17 04:02:03
【问题描述】:
我在数据表中有一个大数据集,但是我通过基本上按组值对列求和来从大表中创建了一个聚合表:
dt <- data.table("grp"=c("a","b","a","c","c","d"), "1"=c(1,45,3,6,2,5), "2"=c(3,36,45,5,12,10), "3"=c(30,3,4,5,2,5), "4"=c(3,3,44,5,2,76), "5"=c(3,3,48,5,2,1), "6"=c(13,73,94,5,2,5))
> dt
grp 1 2 3 4 5 6
1: a 1 3 30 3 3 13
2: b 45 36 3 3 3 73
3: a 3 45 4 44 48 94
4: c 6 5 5 5 5 5
5: c 2 12 2 2 2 2
6: d 5 10 5 76 1 5
我已经创建了一个聚合表
dt.aggregate <- dt[,lapply(.SD,sum),by=grp]
grp 1 2 3 4 5 6
1: a 4 48 34 47 51 107
2: b 45 36 3 3 3 73
3: c 8 17 7 7 7 7
4: d 5 10 5 76 1 5
我想根据原始数据表中每组的行数来划分每一行。
例如 row1 我想除以nrow(dt[grp=="a"]),最好的方法是什么?
【问题讨论】:
-
为什么不把
sum改成mean
标签: r data.table