Использование функции геосферы distm в таблице данных для расчета расстояний

Я создал data.table в котором есть 6 столбцов. В моем data.table есть столбцы, сравнивающие два местоположения: Location 1 и Location 2. Я пытаюсь использовать функцию distm для вычисления расстояния между местоположениями в каждой строке, создавая 7-й столбец. Пакет distm в пакете geosphere требует двух разных векторов для каждого широта / длинная комбинация, для которой необходимо рассчитать. Мой код ниже не работает, поэтому я пытаюсь выяснить, как обеспечить векторы для функции.

LOC_1_ID LOC1_LAT_CORD LOC1_LONG_CORD LOC_2_ID LOC2_LAT_CORD LOC2_LONG_CORD
 1       35.68440        -80.48090        70624    34.86752   -82.46632
 6       35.49770        -80.62870        70624    34.86752   -82.46632
10       35.66042        -80.50053        70624    34.86752   -82.46632

Предполагая, что res содержит data.table, приведенный ниже код не работает.

 res[,DISTANCE := distm(c(LOC1_LAT_CORD, LOC1_LONG_CORD),c(LOC2_LAT_CORD, LOC2_LONG_CORD), fun=distHaversine)*0.000621371]

Если бы я вытащил каждый вектор, функция работает нормально.

loc1 <- res[LOC1_ID == 1,.(LOC1_LAT_CORD, LOC1_LONG_CORD)]
loc2 <- res[LOC2_ID==70624,.(LOC2_LAT_CORD, LOC2_LONG_CORD)]
distm(loc1, loc2, fun=distHaversine)

На самом деле мой вопрос заключается в том, как применять функции для выбора столбцов в data.table, когда этой функции требуются векторы в качестве параметров.

Ответы на вопрос(1)

Ваш ответ на вопрос