首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带fst的bit64整数

带fst的bit64整数
EN

Stack Overflow用户
提问于 2017-02-22 07:32:37
回答 2查看 193关注 0票数 5

我有一个包含长整数的csv格式的数据。我正在csvs和fst文件之间交换此数据。

例如,

代码语言:javascript
复制
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)

有没有办法将fst文件用于包含bit64整数的data.table

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-22 08:37:08

看起来fst可能会在保存或加载时删除列属性(请作为fst包的问题询问)。您可以在此期间将列类型放回原处。bit64::integer64是一个隐藏在幕后的普通double,因此没有丢失任何内容。只是告诉R如何打印列的类型信息。

代码语言:javascript
复制
> 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
票数 6
EN

Stack Overflow用户

发布于 2017-02-22 16:47:31

Matt是完全正确的,fst目前没有序列化任何列属性。不过,它将在下一个版本中发布,该版本将在几周后发布。在这一点上,还将支持DatePOSIXt等类。然而,支持自定义属性将是一个挑战,因为fst提供对数据的随机访问,并且一些属性在子设置时被修改(例如,考虑时间序列)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42379995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档