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

168

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

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

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

2 ответа

142
Лучший ответ

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

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

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

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

В дополнение к ответу @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
  • 0
    Попробуйте: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) загрузить ("x.Rda") print (x)
  • 1
    @HarlanNelson попробовал это. Сделал именно то, что я ожидаю. В чем ваша точка зрения?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню