我很难理解如何用数组解决“错误:无法分配大小为 7.5 Gb 的向量”。当我尝试写入数组的一个切片时,R 似乎正在复制内存中的整个数组。我唯一能想到的就是用 C++ 重写我的代码。但是,在我走那条路之前,R 中是否有本地方式来处理这个问题?这是一个最小的工作示例,它会引发上述错误。尽管如果您的机器上有超过或少于 8 Gb 的内存,那么您需要更改代码来解决这个问题。我真的很感激任何帮助。
memory.limit(size = 8 * 2^10)
theta_init <- runif(
n = 100,
min = 1,
max = 10
)
theta_init <- theta_init / sum(theta_init)
theta <- array(
data = theta_init,
dim = c(10, 10, 1e7)
)
format(
x = object.size(theta),
units = "GB"
)
theta[ , , 10] <- theta[, , 9]