Я пытаюсь построить большую матрицу обратных расстояний с 227 973 координатами. В конечном счете, я хочу использовать результаты этого в качестве входных данных матрицы пространственных весов для пространственной модели Дурбина.
Это мой код:
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?)
Я предполагаю, что проблема здесь заключается в хранении большой матрицы в оперативной памяти?
Таким образом, я попытался увеличить предел памяти, установленный R, ссылаясь на некоторые решения здесь: Ошибка: исчерпана векторная память (достигнут предел?) R 3.5.0 macOS - особенно с настройкой параметр: R_MAX_VSIZE = 16 Гб
Однако я все еще сталкиваюсь с той же ошибкой.
Кто-то предложил сначала решить подматрицы, а затем сложить их вместе в конце, чтобы получить большую матрицу: Как создать матрицу больших расстояний?
Однако я не уверен, как это сделать в коде. Я также не уверен, решит ли это проблему хранения большой матрицы в ОЗУ (при условии, что это проблема).
Кто-нибудь может посоветовать?
Вот моя система, если это полезно знать:
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.5
Спасибо!