具有integer64数字的dcast的异常行为

时间:2019-04-26 15:15:02

标签: r data.table dcast

我正在使用Comtrade的国际贸易数据,该数据以csv文件的形式提供给我。交易值存储为integer64。我知道我应该阅读更多有关使用这种格式时可以做什么和不能做什么的知识。

一个简单的例子:

library("data.table")
library("bit64")
d <- data.table("ID" = c("a","a","b","b"),
            "type" = c("v1","v2","v1","v2"),
            "value"= (sample(1:100,4) %>% as.integer64) )

dcast(d[,], ID ~ type, fill = NA)
    ID v1 v2
1:  a 65  7
2:  b 63 91

dcast(d[-2,], ID ~ type, fill = NA)
   ID v1                  v2
1:  a 65 9218868437227407266
2:  b 63                  91

“ 9218868437227407266”来自哪里?我希望在那里能看到NA。

1 个答案:

答案 0 :(得分:6)

以64为基数,您需要使用NA_integer64_而不是NA

dcast(d[-2,], ID ~ type, fill = NA_integer64_)


   ID v1   v2
1:  a 67 <NA>
2:  b 79   76