在 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 bug 的 fst
。该线程的一位有用的评论员建议 qs
作为保留标签的类似包,尽管我不希望失去 fst
的随机列访问以及其他不错的功能。
我有一个关于在使用 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 bug 的 fst
。该线程的一位有用的评论员建议 qs
作为保留标签的类似包,尽管我不希望失去 fst
的随机列访问以及其他不错的功能。