将带有列表列的标题保存到磁盘
Save a tibble with list columns to disk
我想将具有 list-columns 的 tibble
保存到磁盘(仅供以后在 R 中使用)。理想情况下,我想要像 feather
这样的快速二进制格式,但是,它似乎不支持列表 cols:
test <- tibble(a= list(c(1,2), c(3,4)))
feather::write_feather(test, 'test.csv')
Error in writeFeather(x, path) : Not implemented: a is a list
我原以为 readr
包中的方法能够处理这个问题,但我试过的 none 似乎能够。
我该怎么做?
我对 tidyverse
的体验是它们不适用于包含列表的列。例如,dplyr 中的 filter
对于 data.frame
内的列表无法正常工作。因此,对于不受支持的操作,您只能使用支持它的功能。
如果您只是想寻找一种在磁盘上存储任何 R 对象的方法,我建议您查看 save
或 saveRDS
(以及 load
和 readRDS
).这会将 R 对象序列化为二进制格式。请注意,这仅用作 R 会话之间的存储,不能与其他分析工具(例如 Python 或 SPSS)互操作。
您可以使用 saveRDS
和 readRDS
函数:
library(tibble)
test <- tibble(a= list(c(1,2), c(3,4)))
saveRDS(test, "c:/test.rds")
test_2 <- readRDS("c:/test.rds"))
identical(test, test_2)
在readr
包中有read_rds
和write_rds
函数,甚至可以设置压缩。
我想将具有 list-columns 的 tibble
保存到磁盘(仅供以后在 R 中使用)。理想情况下,我想要像 feather
这样的快速二进制格式,但是,它似乎不支持列表 cols:
test <- tibble(a= list(c(1,2), c(3,4)))
feather::write_feather(test, 'test.csv')
Error in writeFeather(x, path) : Not implemented: a is a list
我原以为 readr
包中的方法能够处理这个问题,但我试过的 none 似乎能够。
我该怎么做?
我对 tidyverse
的体验是它们不适用于包含列表的列。例如,dplyr 中的 filter
对于 data.frame
内的列表无法正常工作。因此,对于不受支持的操作,您只能使用支持它的功能。
如果您只是想寻找一种在磁盘上存储任何 R 对象的方法,我建议您查看 save
或 saveRDS
(以及 load
和 readRDS
).这会将 R 对象序列化为二进制格式。请注意,这仅用作 R 会话之间的存储,不能与其他分析工具(例如 Python 或 SPSS)互操作。
您可以使用 saveRDS
和 readRDS
函数:
library(tibble)
test <- tibble(a= list(c(1,2), c(3,4)))
saveRDS(test, "c:/test.rds")
test_2 <- readRDS("c:/test.rds"))
identical(test, test_2)
在readr
包中有read_rds
和write_rds
函数,甚至可以设置压缩。