Сохранить тиббл со столбцами списка на диск
Я хотел бы сохранить на диск tibble
у которого есть столбцы списка (для дальнейшего использования только внутри R). В идеале я хотел бы быстрый двоичный формат, как feather
однако, кажется, что он не поддерживает списочные столбцы:
test <- tibble(a= list(c(1,2), c(3,4)))
feather::write_feather(test, 'test.csv')
Ошибка в writeFeather(x, path): не реализовано: a является списком
Я ожидал, что методы в readr
пакет, чтобы быть в состоянии справиться с этим, но ни один из тех, которые я пробовал, кажется, не в состоянии.
Как мне это сделать?
2 ответа
Ты можешь использовать 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
функции, которые даже позволяют устанавливать сжатие.
Мой опыт tidyverse
в том, что они не работают со столбцами, содержащими списки. Например, filter
из dplyr не работает правильно для списков внутри data.frame
s. Таким образом, для операций, которые не поддерживаются, вы застряли с функциями, которые поддерживают это.
Если вы просто ищете способ хранения любого объекта R на диске, я бы порекомендовал вам проверить save
или же saveRDS
(а также load
а также readRDS
). Это сериализует R объектов в двоичном формате. Обратите внимание, что это полезно только в качестве хранилища между сеансами R и не совместимо с другими инструментами анализа, такими как Python или SPSS.