我有一个与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