数据表中的“:”运算符(这与:=无关,仅与:任何人都可以建议。)

时间:2019-07-13 19:50:07

标签: r datatable

使用":"运算符,我试图在数据表的j参数中添加列。这是简单的6个月和12个月.. 36个月的汇总

OrderQty36M[,':='(Stat6M=sum(M14:M19)),(Stat12M=sum(M14:M25))]

":"参数可以用作数据表中的序列运算符还是其他方法?

  

in [.data.table(OrderQty36M,,:=(Stat6M = sum(M14:M19)),(Stat12M = sum(M14:M25))):
    “ by”或“ keyby”列表中的项的长度为(1)。每个字段的长度必须与x中的行长度相同,或者与i返回的行数相同(36703)。
  另外:警告消息:
  1:在M14:M25中:
    数值表达式包含36703个元素:仅第一个使用
  2:在M14:M25中:
    数值表达式包含36703个元素:仅第一个使用

1 个答案:

答案 0 :(得分:0)

您在尝试使用data.table时有一些困惑之处:

  1. 您对Stats12M的计算位于我不希望使用的“按”列中。 Stats6M计算中的括号应扩展到Stats12M计算周围。
  2. 我认为data.table不能选择语法为M14:M19的列。幸运的是,dplyr可以使用选择功能。
  3. 我认为您打算对行而不是对列求和,所以您想使用rowSums而不是求和。

我的代码正确版本如下。

OrderQty36M[,':='(Stat6M=rowSums(select(.SD,M14:M19)), Stat12M=rowSums(select(.SD,M14:M25)))][]