Вычислить евклидову матрицу расстояний, используя объект big.matrix
У меня есть объект классаbig.matrix
вR
с размерностью778844 x 2
, Все значения являются целыми числами (километрами). Моя цель - вычислить евклидову матрицу расстояний, используяbig.matrix
и иметь в результате объект классаbig.matrix
, Я хотел бы знать, есть ли оптимальный способ сделать это.
Причина моего выбора использования классаbig.matrix
это ограничение памяти. Я мог бы превратить мойbig.matrix
к объекту классаmatrix
и рассчитать евклидову матрицу расстояний, используяdist()
, Тем не мение,dist()
вернет объект размера, который не будет размещен в памяти.
редактировать
Следующий ответ дал Джон У. Эмерсон, автор и сопровождающийbigmemory
пакет:
Я мог бы использовать большую алгебру, я ожидаю, но это также было бы очень хорошим вариантом использования Rcpp через sourceCpp (), и очень коротким и простым. Но, короче говоря, мы даже не пытаемся предоставить высокоуровневые функции (кроме основ, которые мы реализовали в качестве подтверждения концепции). Ни один алгоритм не может охватить все варианты использования, если вы начинаете говорить о нехватке памяти.