Форматы данных R: RData, Rda, Rds и т. Д.

226

Каковы основные различия между файлами .RData, .Rda и .Rds?

Более конкретно:

  • Есть ли различия в сжатии и т. Д.?
  • Когда следует использовать каждый тип?
  • Как конвертировать один тип в другой?
Карлос Синелли
источник

Ответы:

189

Rda - это просто краткое название RData. Вы можете просто сохранить (), загрузить (), присоединить () и т. Д., Как вы это делаете с RData.

Rds хранит один объект R Тем не менее, помимо этого простого объяснения, есть несколько отличий от «стандартного» хранилища. Возможно это R-manual Ссылка на функцию readRDS () достаточно проясняет такие различия.

Итак, отвечая на ваши вопросы:

  • Разница не в сжатии, а в сериализации (см. Эту страницу )
  • Как показано на странице руководства, вы можете использовать его, например, для восстановления определенного объекта с другим именем.
  • Вы можете читать RDS () и save () или load () и saveRDS () выборочно.
KenM
источник
151

В дополнение к ответу @ KenM, еще одним важным отличием является то, что при загрузке в сохраненный объект вы можете назначить содержимое Rdsфайла. Не так дляRda

> x <- 1:5
> save(x, file="x.Rda")
> saveRDS(x, file="x.Rds")
> rm(x)

## ASSIGN USING readRDS
> new_x1 <- readRDS("x.Rds")
> new_x1
[1] 1 2 3 4 5

## 'ASSIGN' USING load -- note the result
> new_x2 <- load("x.Rda")
loading in to  <environment: R_GlobalEnv> 
> new_x2
[1] "x"
# NOTE: `load()` simply returns the name of the objects loaded. Not the values. 
> x
[1] 1 2 3 4 5
Рикардо Сапорта
источник
Попробуйте: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) load ("x.Rda") print (x)
Харлан Нельсон,
4
@HarlanNelson попробовал это. Сделал именно то, что я ожидаю. В чем ваша точка зрения?
Грегор Томас