R中整数的内存大小

时间:2017-06-27 10:36:40

标签: r

> object.size(integer(1))
48 bytes
> object.size(numeric(1))
48 bytes

我试图估计当我发现这个时我的矩阵需要多少内存。我认为整数需要4个字节,数字需要8个字节。 R如何分配内存会怎样?

2 个答案:

答案 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