R数据格式:RData,Rda,Rds等


226

.RData,.Rda和.Rds文件之间的主要区别是什么?

进一步来说:

  • 压缩等方面有区别吗?
  • 何时应使用每种类型?
  • 如何将一种类型转换为另一种类型?

Answers:


189

Rda只是RData的简称。您可以像保存RData一样保存(),加载(),附加()等。

RDS存储 ř对象。但是,除了这种简单的解释之外,与“标准”存储还存在一些差异。这个R-manual链接到readRDS()函数可能充分阐明了这些区别。

因此,回答您的问题:

  • 区别不在于压缩,而在于序列化(请参阅本页
  • 例如,如手册页所示,您可能想使用它来还原具有不同名称的某个对象。
  • 您可以有选择地阅读RDS()和save(),或load()和saveRDS()。

151

除了@KenM的答案外,另一个重要的区别是,在加载保存的对象时,您可以分配Rds文件的内容。并非如此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

尝试:x <-1:5打印(x)保存(x,file =“ x.Rda”)rm(x)打印(x)加载(“ x.Rda”)打印(x)
哈兰·尼尔森

4
@HarlanNelson尝试过。完全符合我的期望。你想说什么?
格雷戈尔·托马斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.