R中的羽毛包可以支持64位整数吗?
当数据集传递给 时feather::write_feather()
,该列将转换为 64 位浮点数,并失去精度。我想避免将其转换为字符。
这是一个简化的例子。在实际项目中,数据库表(使用 odbc 包检索)具有合法的 64 位整数列(在bit64包中指定)。
requireNamespace("bit64")
path <- base::tempfile(fileext = ".feather")
ds <-
tibble::tibble(
patient_id = bit64::as.integer64(1:6)
)
ds
# # A tibble: 6 x 1
# patient_id
# <int64>
# 1 1
# 2 2
# 3 3
# 4 4
# 5 5
# 6 6
feather::write_feather(x = ds, path = path)
ds_read <- feather::read_feather(path)
# # A tibble: 6 x 1
# patient_id
# <dbl>
# 1 Inf.Nae-324
# 2 Inf.Nae-324
# 3 1.50e-323
# 4 2.00e-323
# 5 2.50e-323
# 6 3.00e-323
as.integer(ds_read$patient_id)
# Returns: [1] 0 0 0 0 0 0
unlink(path_out)
注意:我不想按照这里的建议将它们存储为浮点数。