Calcule la matriz de distancia euclidiana usando un objeto big.matrix
Tengo un objeto de clasebig.matrix
enR
con dimensión778844 x 2
. Los valores son todos enteros (kilómetros). Mi objetivo es calcular la matriz de distancia euclidiana usando elbig.matrix
y como resultado un objeto de clasebig.matrix
. Me gustaría saber si hay una manera óptima de hacerlo.
La razón de mi elección de usar la clasebig.matrix
Es la limitación de la memoria. Podría transformar mibig.matrix
a un objeto de clasematrix
y calcular la matriz de distancia euclidiana usandodist()
. Sin embargo,dist()
devolvería un objeto de tamaño que no se asignaría en la memoria.
Editar
La siguiente respuesta fue dada por John W. Emerson, autor y responsable delbigmemory
paquete:
Podría usar álgebra grande, espero, pero este también sería un caso de uso muy bueno para Rcpp a través de sourceCpp (), y muy corto y fácil. Pero en resumen, ni siquiera intentamos proporcionar características de alto nivel (aparte de los conceptos básicos que implementamos como prueba de concepto). Ningún algoritmo individual podría cubrir todos los casos de uso una vez que comience a hablar en grande sin memoria.