Rstudio 与 R 打开 Rdata (压缩文件) 差异
发布时间:2026/11/6 5:01:22 锦皓数字建站
 差异`)
背景有个 R 数据文件.Rdata里面存了一个名为 data 的数据框包含 5万多个观测2千多个变量每个变量都有 label 等属性 str(data) data.frame: 5w obs. of 2k variables: $ n_eid : num 1e06 1e06 1e06 1e06 1e06 ... ..- attr(*, label) chr Encoded anonymised participant ID $ age0 : num 60 62 66 42 55 47 48 61 69 43 ... ..- attr(*, label) chr age, years ..- attr(*, source_field) chr s_53_0_0, n_34_0_0 $ sex : Factor w/ 2 levels 0,1: 2 1 2 2 1 1 2 2 2 1 ... ..- attr(*, labels) Named chr [1:2] Female Male .. ..- attr(*, names) chr [1:2] 0 1 ..- attr(*, label) chr Sex ..- attr(*, source_field) chr n_31_0_0 $ height0 : num 181 158 191 177 172 165 172 177 171 158 ... ..- attr(*, label) chr Standing height, cm ..- attr(*, source_field) chr n_50_0_0 $ weight0 : num 90.1 89.1 96.1 73.7 87.4 ... ..- attr(*, label) chr Weight, Kg ..- attr(*, source_field) chr n_21002_0_0 $ bmi0 : num 27.5 35.7 26.3 23.5 29.5 ... ..- attr(*, label) chr Body mass index (BMI), Kg/m2 ..- attr(*, source_field) chr n_21001_0_0原始文件大小约为 300M file.size(~/1_前处理.Rdata)/ 1024^2 [1] 298.9328当在 R studio 加载再保存后文件大小变为了 7.3G !!! load(~/1_前处理.Rdata) save(all, file ~/1_前处理copy.Rdata) file.size(~/1_前处理copy.Rdata)/ 1024^3 [1] 7.403472测试经过多次测试发现在 R 软件中或 terminal 中打开 R或通过 Rscript 调用脚本运行以下代码 file.size(~/1_前处理.Rdata)/1024^2 save(all, file ~/1_前处理copy.Rdata) file.size(~/1_前处理copy.Rdata)/ 1024^3产生的 copy.Rdata 文件大小均没有膨胀298.93 M原因在 R 内存中数据对象一直是被压缩/引用共享的状态。如数据中有大量重复的数据结构该数据会被完美压缩。Rstudio 中为了可视化大部分 R 对象均被展开非常消耗内存当 save 该对象时这个对象不会被真正压缩所以文件会非常大。# Rstudio 中 save 的压缩选项被设置为了 FALSE # 当前会话的选项 getOption(save.defaults) # $ascii # [1] FALSE # $compress # [1] FALSE getOption(save.image.defaults) # $ascii # [1] FALSE # $safe # [1] TRUE # $compress # [1] FALSE# 后台运行该脚本时save 的压缩选项为默认的 NULL
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。