R语言 使用object.size和保存命令处理对象大小之间的差异

5cg8jx4n  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(192)

我想在R中保存一个对象,它是一个列表。object.size()说它的大小大约是4 Mb。

> object.size(myobject)
4027168 bytes

但是当我把它保存到一个文件,它出来为1.47 GB!

> save(myobject, file = "./myobject.RData")
> file.info("./myobject.RData"))
                                                          size isdir mode               mtime               ctime
/Users/michaelflower/Desktop/results/myobject.RData 1466060674 FALSE  644 2023-01-21 22:00:49 2023-01-21 22:00:49
                                                                  atime uid gid         uname grname
/Users/michaelflower/Desktop/results/myobject.RData 2023-01-21 21:36:01 501  20 michaelflower  staff

你知道怎么搞清楚发生了什么吗?

z9smfwbn

z9smfwbn1#

lobstr::尝试obj_size以获得更好的准确性
我摆弄了一些包含数据的简单列表。

library(purrr)
library(lobstr)
longlist <- map(1:500,~iris)
object.size(longlist) #3.6mb
obj_size(longlist) # 11kb
save(longlist,file="longlist.Rdata") #50kb
save(longlist,file="longlist2.Rdata",compress = FALSE) # 2.7Mb
save(longlist,file="longlist3.Rdata",compression_level = 9) #18.8kb
save(longlist,file="longlist4.Rdata",compression_level = 1) #228.8kb

相关问题