Formati dati R: RData, Rda, Rds ecc


226

Quali sono le principali differenze tra i file .RData, .Rda e .Rds?

Più specificamente:

  • Ci sono differenze nella compressione ecc.?
  • Quando dovrebbe essere usato ogni tipo?
  • Come convertire un tipo in un altro?

Risposte:


189

Rda è solo un nome breve per RData. Puoi semplicemente salvare (), load (), attach (), ecc. Proprio come fai con RData.

Rds memorizza un singolo oggetto R. Tuttavia, al di là di questa semplice spiegazione, ci sono diverse differenze rispetto a una memoria "standard". Probabilmente questo collegamento R-manual a readRDS () chiarisce sufficientemente tali distinzioni.

Quindi, rispondendo alle tue domande:

  • La differenza non riguarda la compressione, ma la serializzazione (Vedi questa pagina )
  • Come mostrato nella pagina del manuale, è possibile utilizzarlo per ripristinare un determinato oggetto con un nome diverso, ad esempio.
  • Puoi leggere RDS () e save (), oppure caricare () e saveRDS () in modo selettivo.

151

Oltre alla risposta di @ KenM, un'altra importante distinzione è che, quando si carica un oggetto salvato, è possibile assegnare il contenuto di un Rdsfile. Non così perRda

> 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

Prova: x <- 1: 5 stampa (x) salva (x, file = "x.Rda") rm (x) stampa (x) carica ("x.Rda") stampa (x)
Harlan Nelson

4
@HarlanNelson ha provato. Ha fatto esattamente quello che mi aspetto. Qual è il tuo punto?
Gregor Thomas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.