Formatos de datos R: RData, Rda, Rds, etc.

226

¿Cuáles son las principales diferencias entre los archivos .RData, .Rda y .Rds?

Más específicamente:

  • ¿Hay diferencias en la compresión, etc.?
  • ¿Cuándo se debe usar cada tipo?
  • ¿Cómo convertir un tipo a otro?
Carlos Cinelli
fuente

Respuestas:

189

Rda es solo un nombre corto para RData. Puede guardar (), cargar (), adjuntar (), etc. tal como lo hace con RData.

Rds almacena un solo objeto R. Sin embargo, más allá de esa simple explicación, hay varias diferencias con respecto a un almacenamiento "estándar". Probablemente esta función R-manual Link to readRDS () aclara tales distinciones suficientemente.

Entonces, respondiendo a sus preguntas:

  • La diferencia no está en la compresión, sino en la serialización (Ver esta página )
  • Como se muestra en la página del manual, puede utilizarlo para restaurar un determinado objeto con un nombre diferente, por ejemplo.
  • Puede leer RDS () y guardar (), o cargar () y guardar RDS () selectivamente.
KenM
fuente
151

Además de la respuesta de @ KenM, otra distinción importante es que, al cargar un objeto guardado, puede asignar el contenido de un Rdsarchivo. No es así paraRda

> 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
fuente
Prueba: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) load ("x.Rda") print (x)
Harlan Nelson
44
@HarlanNelson lo intentó. Hice exactamente lo que esperaba. ¿Cual es tu punto?
Gregor Thomas