我只是在做data.table数据传输练习,而且有些东西确实会干扰我对逻辑的理解。 以某种方式由" by"引用的列。运算符与其他列不同?
使用过的数据表如下:
DT
x y z
1: 2 1 2
2: 1 3 4
3: 2 5 6
4: 1 7 8
5: 2 9 10
6: 2 11 12
7: 1 13 14
当我输入DT [,sum(x),x]时,我希望:
x V1
1: 2 8
2: 1 3
但我明白了:
x V1
1: 2 2
2: 1 1
对于其他列我按照我的预期获得组合总和:
> DT[,sum(y),x]
x V1
1: 2 26
2: 1 23
答案 0 :(得分:0)
解决此问题的一种方法是使用不同的名称命名分组变量
setnames(DT[, sum(x), .(xN=x)], "xN", "x")[]
# x V1
#1: 2 8
#2: 1 3