.rds和.Rdata(.rda)

image

.rds​和.Rdata​ (也称为.rda​ )文件都可用于以R本机格式存储R对象。与非本机存储方法(例如write.table相比,保存此方法有多个优点:
1)将数据恢复到R更快
2)它保持在数据中编码的R特定信息(例如,属性,变量类型等)。
但他们也有一点不同。

保存和加载方式不同

RDS是用saveRDS​和readRDS​,Rdata使用save​和load​。

> 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
save(x,'x.Rdata')
> new_x2 <- load("x.Rdata")
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

2.Rdata 可以保存多个对象,RDS仅处理单个R对象

saveRDS / readRDS仅处理单个R对象。但是,它们比多对象存储方法更灵活,因为还原对象的对象名称不必与存储对象时的对象名称相同。

例如,

# 使用.rds文件保存我们将使用的iris数据集:
saveRDS(object = iris, file = "my_data_frame.rds")
# 要将数据加载回:
iris2 <- readRDS(file = "my_data_frame.rds")

# 要保存多个对象,我们可以使用save()和输出为.Rdata 。
# 例如,保存2个数据帧:虹膜和汽车
save(iris, cars, file = "myIrisAndCarsData.Rdata")
# 载入:
load("myIrisAndCarsData.Rdata")

.Rdata​也可以写成.rda​,后来发现使用.rda​十分方便!力荐!尤其是当环境内有多个变量需要保存时。

补充

Rdata​不压缩,直接保存。

rbase​中默认储存rds​的函数saveRDS()​会对变量压缩后存储,如果变量比较大,压缩耗时很高,在R包readr​中提供了一个write_rds()​,该函数保存rds时不压缩(或可以手动设置压缩率),保存速度较快,但是占用空间较多。多数情况下,时间比硬盘空间更宝贵,所以我目前倾向于使用这个函数。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容