web-dev-qa-db-fra.com

Formats de données R: RData, Rda, Rds etc.

Quelles sont les principales différences entre les fichiers .RData, .Rda et .Rds?

Plus précisement:

  • Existe-t-il des différences de compression, etc.?
  • Quand faut-il utiliser chaque type?
  • Comment convertir un type à un autre?
197
Carlos Cinelli

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

Rds stocke un objet unique R. Cependant, au-delà de cette simple explication, il existe plusieurs différences par rapport à un stockage "standard". Probablement ceci lien R-manuel vers la fonction readRDS () clarifie suffisamment ces distinctions.

Alors, répondant à 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 par exemple l'utiliser pour restaurer un certain objet sous un nom différent.
  • Vous pouvez sélectionner readRDS () et save (), ou load () et saveRDS ().
165
KenM

Outre la réponse de @ KenM, une autre distinction importante est que, lors du chargement dans un objet enregistré, vous pouvez affecter le contenu d'un fichier Rds. Ce n'est pas le cas 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
140
Ricardo Saporta