> object.size(integer(1))
48 bytes
> object.size(numeric(1))
48 bytes
我试图估计当我发现这个时我的矩阵需要多少内存。我认为整数需要4个字节,数字需要8个字节。 R如何分配内存会怎样?
答案 0 :(得分:3)
R有no scalar data types,例如整数或双精度。相反,每个“标量”值实际上表示为长度为1的向量,因此具有相当大的内存开销。我们可以通过比较标量的大小和2元素向量的大小来证实这一点:
object.size(1) == object_size(1:2)
[1] TRUE
大小相等,因为R以递增方式分配新内存。
答案 1 :(得分:1)
我必须补充说,Jean的发现不暗示整数的向量(矩阵)需要与数字的向量(矩阵)相同的内存量。例如(并且归功于[Paul Murrell](https://www.stat.auckland.ac.nz/~paul/ItDT/HTML/node76.html)):
> object.size(1:1000)
4040 bytes
> object.size(as.numeric(1:1000))
8040 bytes