簡體   English   中英

bit64與fst的整數

[英]bit64 integers with fst

我在包含長整數的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文件data.table含硫bit64整數

看起來fst可能在保存或加載時丟棄列屬性(請在fst包中詢問問題)。 您可以在此期間自行添加列類型。 bit64::integer64是引擎蓋下的普通double bit64::integer64 ,因此沒有丟失任何位。 只是告訴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

Matt絕對正確, fst目前沒有序列化任何列屬性。 它將在下一個版本中,這將在幾周后到期。 此時,還將支持DatePOSIXt等類。 然而,支持自定義屬性將是一項挑戰,因為fst提供對數據的隨機訪問,並且一些屬性在子設置時被修改(例如,考慮時間序列)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM