在 R 中标记大序列化数据(fst & Hmisc)

Labelling big serialized data in R (fst & Hmisc)

我有一个关于在使用 fst 包时如何保存标记数据的问题。 我一直在使用Hmisc包来标注数据,比如:

library(fst)
library(Hmisc)

# make an example dataset
df <- data.frame(id = letters[1:4],
                 val = 1:4)

# apply labels to dataframe
label(df$id) <- "identifier"
label(df$val) <- "value"

label(df)
         id          val 
"identifier"      "value" 

但我的实际数据非常大,所以我将其保存为 fst 而不是 rds。不过最近,我注意到这似乎让我的标签消失了:

fp <- '~/filepath/example_code_data/label_ex.fst'

# save as fst
write_fst(df, fp)

# open data again
df2 <- read_fst(fp)

label(df2)
 id val 
 ""  ""

当我将数据保存为 rds 时,标签没有问题。如果能更深入地了解正在发生的事情或解决方案,我们将不胜感激。

对于以后遇到类似问题的任何人来说,这似乎是 known bugfst。该线程的一位有用的评论员建议 qs 作为保留标签的类似包,尽管我不希望失去 fst 的随机列访问以及其他不错的功能。