R的原生二进制格式,但在使用和特性上有一些重要区别。下面该表格汇总了它们的核心差异,方便你快速了解。就是R语言中的 .rds 和 .RData (也称为 .rda) 文件是两种常用的内容存储格式,它们虽然都
特性维度 .rds 档案 .RData / .rda 文件
存储对象数量 单个R对象 多个R对象
保存函数 saveRDS() save()
读取函数 readRDS() load()
加载方式 需赋值给变量(如 obj <- readRDS(“file.rds”)),不会自动覆盖当前环境中的变量 自动加载到当前环境,启用对象原有名称,可能覆盖已有同名变量
文件扩展名 .rds .rda 或 .RData
压缩与大小 默认压缩,文件体积通常较小 默认不压缩或压缩程度较低,文件可能较大
适用场景 保存单个大型对象(如模型、大型数据框),管道操作,需灵活控制对象名 保存整个工作空间或一组相关对象(如项目内容、函数、中间结果)
选择建议
• 希望精确控制加载对象的名称,避免意外覆盖现有变量,或者需要在管道操作中传递数据时,优先选择 .rds。
• 需要保存和恢复整个工作环境(包括多个变量、函数等),或者有一组关系紧密、需要同时使用的对象时,使用 .RData/.rda 更方便。
• 对于大型数据集(如基因表达矩阵),.rds 因其压缩特性,在存储效率和加载速度上通常更有优势。
• 倘若注重资料的可移植性(与非R用户共享),两者都不是最佳选择,应考虑文本格式(如CSV、TSV)。
⚠️ 注意事项
- 版本兼容性:这两种二进制格式可能在不同版本的R之间存在兼容性问题。主要数据建议额外保存为开放格式(如CSV)作为备份。
- 安全风险:二进制文件可能包含恶意代码,务必仅加载来自可信来源的文件。
- 默认保存行为:R或RStudio在退出时可能会询问是否将整个工作空间保存到 ~/.RData 材料。若不希望如此,可以在退出时选择“No”,或借助修改R配置文件永久关闭此功能。
代码示例
假设有两个对象:一个数据框 df 和一个模型 model
df <- data.frame(x = 1:5, y = letters[1:5])
model <- lm(y ~ x, data = df)
使用 .rds 保存单个对象
saveRDS(df, file = “my_dataframe.rds”)
saveRDS(model, file = “my_model.rds”)
读取 .rds 文件时需赋值,可自定义变量名
new_df <- readRDS(“my_dataframe.rds”)
loaded_model <- readRDS(“my_model.rds”)
利用 .RData 同时保存多个对象
save(df, model, file = “my_workspace.RData”)
清除当前环境中的对象
rm(df, model)
加载 .RData 文档,对象以原名自动恢复至当前环境
load(“my_workspace.RData”) # 现在 df 和 model 又出现了
希望这些信息能帮助你更好地根据实际需求选择合适的格式。