Вычисление расстояния между двумя точками для нескольких записей для совпадающих строк - цикл по строкам двух матриц - PullRequest
0 голосов
/ 05 марта 2019

У меня есть две матрицы с координатами, и я пытаюсь вычислить расстояния между точками в совпадающих строках, т.е. между строкой 1 в первой матрице и строкой 1 во второй матрице.

То, что я получаю, это вычисленное расстояние между строкой 1 и всеми другими строками.Это создает проблемы с памятью, так как у меня 800 000 строк.Кто-нибудь знает, как попросить об этом?

Я использую

dist1 <- distm(FareStageMatrix[1:25000,], LSOACentroidMatrix[1:25000,], fun=distHaversine)

Я пытаюсь создать что-то подобное, но, похоже, не работает

for(i in 1:nrow(FareStageMatrix)) {
    for(j in 1:nrow(LSOACentroidMatrix)) {
        my_matrix[i] <- my_matrix[distm(FareStageMatrix[i], LSOACentroidMatrix[i], fun=distHaversine)]
    }
}

изменено на

for (i in 1:nrow(FareStageMatrix)){
    for (i in 1:nrow(LSOACentroidMatrix)){
      r1<-FareStageMatrix[i,]
      r2<-LSOACentroidMatrix[i,]
      results[i]<-distm(r1, r2, fun=distHaversine)  
}
}

Это то, что должно работать?

1 Ответ

0 голосов
/ 05 марта 2019

Кажется, мне удалось найти решение этой проблемы:

results<-matrix(NA,nrow(FareStageMatrix))

for (i in 1:nrow(FareStageMatrix)){
  for (i in 1:nrow(LSOACentroidMatrix)){
    r1<-FareStageMatrix[i,]
    r2<-LSOACentroidMatrix[i,]
    results[i]<-distm(r1, r2, fun=distHaversine)  ## Example function
  }
}

где FareStageMatrix и LSOACentroidMatrix - это матрицы с координатами

Кажется, он рассчитал одно расстояние для данной пары точек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...