我需要使用一些非常大的数据集。我想知道使用矩阵,列表,两个向量或data.frame是否更好。当我计算小物体的大小(使用包pryr)时,我得到不同的大小。例如:
library(pryr)
df <- data.frame(a=rep(10,1000),b=rep(10,1000))
ma <- matrix(rep(10,2000),1000,2)
li <- list(a=rep(10,1000),b=rep(10,1000))
v <- rep(10,1000)
object_size(df)
object_size(ma)
object_size(li)
object_size(v)*2
我分别得到16.8 kB,16.2 kB,16.4 kB和16.1 kB。
但是,当对象较大时,它们在所有情况下似乎都是相同的大小。
df <- data.frame(a=rep(1211,10000),b=rep(1211,10000))
ma <- matrix(rep(1211,20000),10000,2)
li <- list(a=rep(1211,10000),b=rep(1211,10000))
v <- rep(1211,10000)
object_size(df)
object_size(ma)
object_size(li)
object_size(v)*2
在这种情况下,我在所有情况下都得到160 kB。
我想知道为什么会这样。我预计,对于较大的物体,差异会更明显。