我有一个在 R 会话中创建的数据集,我想 1)导出为 csv 2)单独保存 readr 类型的列规范。这将允许我稍后使用 read_csv() 并从保存在 2) 中的文件中指定 col_types 来读取这些数据。
问题:spec
仅针对使用read_*
函数读取的数据获取列规范(属性)。似乎无法从 R 中创建的数据集中直接获取列规范?
到目前为止,我的工作流程是:
出口项目:
write_csv()
从导出的文件中读取规范:
spec_csv()
.保存列规范:
write_rds()
然后终于
read_csv(step_1, col_types=step_3)
但这很容易出错,因为spec_csv()
它可能会出错:它确实只是猜测,所以如果所有值都是 NA,需要属性任意(字符)类。理想情况下,我希望能够直接从原始数据集中提取列规范,而不是写入/重新加载。我怎样才能做到这一点?即,如何将我的数据框类转换为spec
对象?
谢谢!
实际(低效)工作量:
library(tidyverse)
write_csv(iris, "iris.csv")
spec_csv("iris.csv") %>%
write_rds("col_specs_path.rda")
read_csv("iris.csv", col_types = read_rds("col_specs_path.rda"))