我希望两种方式都能返回相同的data.table
,你知道为什么结果会有所不同吗?
tmp <- data.table(a=c(1:9), b=c(11:19), c=c(rep(7:9, 3)),d=c(rep(4:6, 3)))
> tmp[, lapply(.SD, weighted.mean, x = a, w = b), by=c('c', 'd')]
c d a b
1: 7 4 4.428571 4.428571
2: 8 5 5.400000 5.400000
3: 9 6 6.375000 6.375000
>
> tmp[, .(lapply(.SD, weighted.mean, x = a, w = b)), by=c('c', 'd')]
c d V1
1: 7 4 4.428571
2: 7 4 4.428571
3: 8 5 5.4
4: 8 5 5.4
5: 9 6 6.375
6: 9 6 6.375