R数据表“;j";参考「;由「;变量非常不直观?
我只是在做data.table datacamp练习,有些东西真的打乱了我的逻辑感。 不知何故,“by”运算符引用的列与其他列的处理方式不同 使用的数据表如下所示:R数据表“;j";参考「;由「;变量非常不直观?,r,reference,data.table,R,Reference,Data.table,我只是在做data.table datacamp练习,有些东西真的打乱了我的逻辑感。 不知何故,“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:
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
解决此问题的一种方法是使用不同的名称命名分组变量
setnames(DT[, sum(x), .(xN=x)], "xN", "x")[]
# x V1
#1: 2 8
#2: 1 3
谢谢你的快速回答。这与其说是找工作,不如说是风格问题。但是你的似乎很直截了当。文档说“.BY”是一个列表,其中包含
BY
中每个项目的长度为1的向量,这也适用于BY
中出现的所有列。您也可以执行x*.N
来获得总和。