使用integer64作为数据表的键

时间:2015-09-24 13:02:21

标签: r data.table

我有一列integer64,并希望将其用作关键字,只有它不起作用,如下所示:值为NA

此作品

s = data.table(id=1000000107000008595, value=10)
setkey(s, id)
s[J(1000000107000008595)]
#             id value
# 1: 1.00000e+18    10

这不起作用

s = data.table(id=as.integer64(1000000107000008595), value=10)
setkey(s, id)
s[J(1000000107000008595)]
#             id value
# 1: 1.00000e+18    NA  # <- NA is the problem

1 个答案:

答案 0 :(得分:3)

您使用的是什么版本的R.包? 我刚试过这个:

library(bit64)
library(data.table)
s = data.table(id=1000000107000008595, value=10)
setkey(s, id)
s[J(1000000107000008595)]

s = data.table(id=as.integer64(1000000107000008595), value=10)
setkey(s, id)
s[J(1000000107000008595)]

它给了我

> s = data.table(id=1000000107000008595, value=10)
> setkey(s, id)
> s[J(1000000107000008595)]
      id value
1: 1e+18    10
> 
> s = data.table(id=as.integer64(1000000107000008595), value=10)
> setkey(s, id)
> s[J(1000000107000008595)]
                    id value
1: 1000000107000008576    10

我在

> version$version.string
[1] "R version 3.2.2 (2015-08-14)"

sessionInfo()

other attached packages:
[1] data.table_1.9.6 bit64_0.9-5      bit_1.1-12