【发布时间】:2015-10-13 23:26:08
【问题描述】:
我希望生成大量数据,然后将其捕获 R。如何通过行数、列数和变量类型来估计 data.frame 的大小(以及所需的内存)?
示例。
如果我有 10000 行和 150 列,其中 120 个是数字,20 个是字符串,10 个是因子级别,我可以预期的数据框大小是多少?结果是否会根据列中存储的数据而改变(如max(nchar(column)))?
> m <- matrix(1,nrow=1e5,ncol=150)
> m <- as.data.frame(m)
> object.size(m)
120009920 bytes
> a=object.size(m)/(nrow(m)*ncol(m))
> a
8.00066133333333 bytes
> m[,1:150] <- sapply(m[,1:150],as.character)
> b=object.size(m)/(nrow(m)*ncol(m))
> b
4.00098133333333 bytes
> m[,1:150] <- sapply(m[,1:150],as.factor)
> c=object.size(m)/(nrow(m)*ncol(m))
> c
4.00098133333333 bytes
> m <- matrix("ajayajay",nrow=1e5,ncol=150)
>
> m <- as.data.frame(m)
> object.size(m)
60047120 bytes
> d=object.size(m)/(nrow(m)*ncol(m))
> d
4.00314133333333 bytes
【问题讨论】:
-
我做了以下并得到以下内容来获取每个变量类型的字节数
标签: r memory objectsize