R数据表“;j";参考「;由「;变量非常不直观?

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:

我只是在做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: 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
来获得总和。