`data.table`中的聚合和输入不一致

时间:2018-04-11 18:02:48

标签: r data.table

我有一个与Why does median trip up data.table (integer versus double)?相关的问题。除了在我的情况下,我使用最大值。我排除了缺失值。在基数R中,长度为0的向量的最大值为-Inf,有趣的是它是一个双精度而不是整数。我认为data.table最近的优化例程可能存在错误。

拿这个数据表:

dt <- data.table(id = c(1,1,1,3,3,3), num = 1:6, log = c(F,F,F,T,F,T))

如果我们执行:

dt[, .(mnum = max(num[log], na.rm=T)), by=id]

我们发现错误:

Error in `[.data.table`(dt, , .(mnum = max(num[log], na.rm=T)), by=id1] :
 Column 1 of result for group 2 is type 'integer' but expecting type 'double'. Column types must be consistent for each group.

我是否认为这是一个错误或者是否存在语法上的遗漏?

预期的输出当然是

mnum id
-Inf  1
   6  3

0 个答案:

没有答案