Hug*_*ugh 5 r data.table bit64
我在包含长整数的csv中有数据.我在csvs和fst文件之间交换这些数据.
例如,
library(bit64)
library(data.table)
library(fst)
library(magrittr)
# Prepare example csvs
DT64_orig <- data.table(x = (c(2345612345679, 1234567890, 8714567890)))
fwrite(DT64_orig, "DT64_orig.csv")
# Read and move to fst
DT64 <- fread("DT64_orig.csv")
write.fst(DT64, "DT64_fst.fst")
DT_fst2 <-
read.fst("DT64_fst.fst") %>%
setDT
# bit64 integers not preserved:
identical(DT_fst2, DT64)
Run Code Online (Sandbox Code Playgroud)
有没有办法使用包含整数的fst文件data.tablebit64
看起来fst可能在保存或加载时丢弃列属性(请在fst包装上询问问题).您可以在此期间自行添加列类型.在引擎盖下bit64::integer64是一个平原double,所以没有丢失的位.只是告诉R如何打印列的类型信息.
> DT_fst2
x
1: 1.158886e-311
2: 6.099576e-315
3: 4.305569e-314
> setattr(DT_fst2$x, "class", "integer64")
> DT_fst2
x
1: 2345612345679
2: 1234567890
3: 8714567890
> identical(DT_fst2, DT64)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |