Formaty danych R: RData, Rda, Rds itp

226

Jakie są główne różnice między plikami .RData, .Rda i .Rds?

Dokładniej:

  • Czy istnieją różnice w kompresji itp.?
  • Kiedy należy stosować każdy typ?
  • Jak przekonwertować jeden typ na inny?
Carlos Cinelli
źródło

Odpowiedzi:

189

Rda to tylko krótka nazwa dla RData. Możesz po prostu zapisywać (), ładować (), załączać () itd., Tak jak robisz to z RData.

Rds przechowuje pojedynczy obiekt R. Jednak poza tym prostym wyjaśnieniem istnieje kilka różnic w stosunku do „standardowego” magazynu. Prawdopodobnie ta instrukcja R Link do readRDS () wystarczająco wyjaśnia takie rozróżnienia.

Odpowiadając na pytania:

  • Różnica nie polega na kompresji, ale na serializacji (zobacz tę stronę )
  • Jak pokazano na stronie podręcznika, możesz na przykład użyć go do przywrócenia określonego obiektu o innej nazwie.
  • Możesz czytać RDS () i save () lub ładować () i saveRDS () wybiórczo.
KenM
źródło
151

Oprócz odpowiedzi @ KenM, kolejnym ważnym rozróżnieniem jest to, że podczas ładowania do zapisanego obiektu można przypisać zawartość Rdspliku. Nie takRda

> 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
Ricardo Saporta
źródło
Spróbuj: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) load ("x.Rda") print (x)
Harlan Nelson
4
@HarlanNelson spróbował. Zrobiłem dokładnie to, czego oczekuję. O co ci chodzi?
Gregor Thomas,