R форматов данных: RData, Rda, RDS и т.д.

В чем основные отличия между файлами .RData,.Rda и .Rds?

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

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

Ответ 1

Rda - это просто краткое имя для RData. Вы можете просто сохранить(), load(), attach() и т.д. Так же, как вы делаете с RData.

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

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

  • Разница заключается не в сжатии, а в сериализации (см. на этой странице)
  • Как показано на странице руководства, вы можете использовать его для восстановления определенного объекта с другим именем, например.
  • Вы можете читатьRDS() и сохранять() или загружать() и сохранятьRDS() выборочно.

Ответ 2

В дополнение к ответу @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