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

226

Quais são as principais diferenças entre os arquivos .RData, .Rda e .Rds?

Mais especificamente:

  • Existem diferenças na compressão, etc?
  • Quando cada tipo deve ser usado?
  • Como converter um tipo para outro?
Carlos Cinelli
fonte

Respostas:

189

Rda é apenas um nome abreviado para RData. Você pode salvar (), carregar (), anexar (), etc., exatamente como faz com o RData.

Rds armazena um único objeto R. No entanto, além dessa simples explicação, existem várias diferenças em relação a um armazenamento "padrão". Provavelmente, esta função Link R-manual para readRDS () esclarece suficientemente essas distinções.

Então, respondendo suas perguntas:

  • A diferença não é sobre a compactação, mas a serialização (consulte esta página )
  • Como mostrado na página do manual, você pode usá-lo para restaurar um determinado objeto com um nome diferente, por exemplo.
  • Você pode lerRDS () e salvar () ou carregar () e salvarRDS () seletivamente.
KenM
fonte
151

Além da resposta do @ KenM, outra distinção importante é que, ao carregar um objeto salvo, você pode atribuir o conteúdo de um Rdsarquivo. Não é assim 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
fonte
Tente: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) load ("x.Rda") print (x)
Harlan Nelson
4
@HarlanNelson tentou. Fiz exatamente o que eu esperava. Onde você quer chegar?
Gregor Thomas