R formats de données: RData, Rda, Rds etc

Quelles sont les principales différences entre .RData, .L'anr et de l' .Les fichiers Rds?

Plus précisément:

  • y a-t-il des différences de compression, etc.?
  • Quand chaque type doit-il être utilisé?
  • Comment convertir un type en un autre?
167
demandé sur David Arenburg 2014-01-27 02:29:48

2 réponses

Rda est juste un nom court pour RData. Vous pouvez simplement enregistrer (), charger (), attacher (), etc. comme vous le faites avec RData.

RDS stocke un objet unique R. Pourtant, au-delà de cette simple explication, il existe plusieurs différences par rapport à un stockage "standard". Probablement cette fonction R-Manual Link to readrds () clarifie suffisamment ces distinctions.

Donc, répondre à vos questions:

  • la différence ne concerne pas la compression, mais la sérialisation (voir cette page)
  • , Comme indiqué dans la page de manuel, vous pouvez vouloir l'utiliser pour restaurer un objet avec un nom différent, par exemple.
  • Vous pouvez readRDS() et save(), ou load() et saveRDS() sélectivement.
144
répondu KenM 2014-01-26 22:53:18

En plus de la réponse de @KenM, une autre distinction importante est que, lors du chargement dans un objet enregistré, vous pouvez attribuer le contenu d'un fichier Rds. Pas pour 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
123
répondu Ricardo Saporta 2015-05-19 20:48:25