.rds
和 .Rdata
(也稱為.rda
)文件都可用于以 R 本機格式存儲 R 對象。與非本機存儲方法(例如write.table
相比,保存此方法有多個優點:
- 將數據恢復到R更快
- 它保持在數據中編碼的R特定信息(例如,屬性,變量類型等)。
但他們也有一點不同。
1. 保存和加載方式不同
- 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")