我正在尝试构建一个具有227,973坐标的大型反距离矩阵。最终,我希望将其结果用作输入到空间durbin模型的空间权重矩阵。
这是我的代码:
dist_matrix <- as.matrix(dist(cbind(full_df$Longitude,full_df$Latitude)))
dist_matrix_inv <- 1/dist_matrix
diag(dist_matrix_inv) <- 0
ilw <- mat2listw(dist_matrix_inv, style="W")
但是,我在代码的第一行收到此错误:
Error: vector memory exhausted (limit reached?)
我假设这里的问题在于将大矩阵存储在RAM中?
因此,我尝试增加R所设置的内存限制,请参考此处的一些解决方案:Error: vector memory exhausted (limit reached?) R 3.5.0 macOS-尤其是设置参数:R_MAX_VSIZE = 16Gb
但是,我仍然遇到相同的错误。
有人建议先求解子矩阵,然后最后将它们拼接在一起,以在此处获得大矩阵:How to create a Large Distance Matrix?
但是,我不确定如何在代码中执行此操作。我也不确定这是否可以解决在RAM中存储大矩阵的问题(假设这是问题所在)。
有人可以建议吗?
这是我的系统,如果这对您有所帮助:
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.5
谢谢!