当我使用save()从R保存对象时,是什么决定了保存文件的大小?显然,它与object.size()确定的对象大小不同(或接近)。
实施例: 我读了一个数据框并使用
保存snpmat=read.table("Heart.txt.gz",header=T)
save(snpmat,file="datamat.RData")
文件datamat.RData的大小为360MB。
> object.size(snpmat)
4998850664 bytes #Much larger
然后我进行了一些回归分析并获得了相同尺寸的另一个数据框adj.snpmat(6820000行和80列)。
> object.size(adj.snpmat)
4971567760 bytes
我使用
保存> save(adj.snpmat,file="adj.datamat.RData")
现在文件adj.datamat.RData的大小是3.3GB。我很困惑为什么这两个文件的大小不同,而object.size()给出了相似的大小。任何决定保存对象大小的想法都是受欢迎的。
更多信息:
> typeof(snpmat)
[1] "list"
> class(snpmat)
[1] "data.frame"
> typeof(snpmat[,1])
[1] "integer"
> typeof(snpmat[,2])
[1] "double" #This is true for all columns except column 1
> typeof(adj.snpmat)
[1] "list"
> class(adj.snpmat)
[1] "data.frame"
> typeof(adj.snpmat[,1])
[1] "character"
> typeof(adj.snpmat[,2])
[1] "double" #This is true for all columns except column 1