什么决定了R中保存对象的大小?

时间:2014-07-02 19:05:55

标签: r memory workspace

当我使用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

0 个答案:

没有答案