ChatGPT解决这个技术问题 Extra ChatGPT

What are the main differences between R data files?

What are the main differences between .RData, .Rda and .Rds files?

Are there differences in compression, etc.?

When should each type be used?

How can one type be converted to another?


K
KenM

Rda is just a short name for RData. You can just save(), load(), attach(), etc. just like you do with RData.

Rds stores a single R object. Yet, beyond that simple explanation, there are several differences from a "standard" storage. Probably this R-manual Link to readRDS() function clarifies such distinctions sufficiently.

So, answering your questions:

The difference is not about the compression, but serialization (See this page)

Like shown in the manual page, you may wanna use it to restore a certain object with a different name, for instance.

You may readRDS() and save(), or load() and saveRDS() selectively.


R
Ricardo Saporta

In addition to @KenM's answer, another important distinction is that, when loading in a saved object, you can assign the contents of an Rds file. Not so for 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

@HarlanNelson tried it. Did exactly what I expect. What's your point?