gpt4 book ai didi

r - 带 fst 的 bit64 整数

转载 作者:行者123 更新时间:2023-12-02 01:39:43 33 4
gpt4 key购买 nike

我的 csv 中有包含长整数的数据。我正在 csv 和 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)

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

最佳答案

看起来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

关于r - 带 fst 的 bit64 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379995/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com