r - 数据表中的“:”运算符(这与 := 无关,而只是:任何人都可以建议。)
问题描述
使用 ":"
运算符我试图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 个元素:只使用第一个
解决方案
您在这里尝试使用 data.table 的方式有一些困惑:
- 您对 Stats12M 的计算在 by 列中,我认为这不是有意的。Stats6M 计算中的括号应围绕 Stats12M 计算进行扩展。
- 我不认为 data.table 可以选择语法为 M14:M19 的列。幸运的是,dplyr 可以使用 select 功能。
- 我认为您打算跨行而不是列求和,因此您想使用 rowSums 而不是求和。
我的代码更正版本如下。
OrderQty36M[,':='(Stat6M=rowSums(select(.SD,M14:M19)), Stat12M=rowSums(select(.SD,M14:M25)))][]
推荐阅读
- php - 动态解析变量到array_map
- javascript - instanceof 接受一个字符串作为我的 Type 类 Javascript 的实例
- python - 数据时间第一天PANDAS的动作
- sql - 具有行和列级别的 XML 到 SQL Server 表
- symfony - 如何使用 Doctrine 和 createQueryBuilder 从视图中获取数据?
- python - Python - collections.OrderedDict() 没有正确排序字典
- c++ - Javascript 找不到用 emscripten 编译的导出 WASM 函数
- python - virtualenv 依赖项对 Ubuntu 18.04 响应不佳
- kubernetes - 为 Kubernetes 命名空间设置部署锁?
- sorting - 如何防止地图排序?