我正在尝试替换矩阵中的值,特别是“t”->1 和“f”->0,但我不断收到错误消息:
Error: cannot allocate vector of size 2.0 Mb
...
Reached total allocation of 16345Mb: see help(memory.size)
我在 RStudio 的 64 位版本 R 上使用具有 16GB 内存的 Win7 计算机。
我目前正在运行的是
a <- matrix( dataset, nrow=nrow(dataset), ncol=ncol(dataset), byrow=TRUE)
memory.size()
a[a=="t"] <- 1
其中 dataset 是(大约)525000x300 大小的数据框。这memory.size()
条线给了我不到 4GB 的使用空间,memory.limit()
是 16GB。为什么替换行需要这么多内存才能执行?有没有办法在不达到内存限制的情况下进行替换(并且有什么好的技巧可以避免它),如果是这样,运行它会花费我很多时间吗?我对 R 还是很陌生,所以我不知道它是否会根据我使用的数据类以及 R 分配内存的方式有所不同......