Usando a função geosfera distm em uma tabela de dados para calcular distâncias
Eu criei um data.table em que tem 6 colunas. Meu data.table possui colunas comparando dois locais: Local 1 e Local 2. Estou tentando usar a função distm para calcular a distância entre os locais em cada linha, criando uma 7ª coluna. O pacote distm no pacote da geosfera requer dois vetores diferentes para cada combinação de lat / long a ser calculada. Meu código abaixo não funciona, então estou tentando descobrir como fornecer vetores para a função.
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
Supondo que res detenha a tabela data.t, o código abaixo não funciona.
res[,DISTANCE := distm(c(LOC1_LAT_CORD, LOC1_LONG_CORD),c(LOC2_LAT_CORD, LOC2_LONG_CORD), fun=distHaversine)*0.000621371]
Se eu puxasse cada vetor, a função funcionaria bem.
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)
Realmente, minha pergunta é como aplicar funções para selecionar colunas dentro de uma tabela data.table quando essa função requer vetores como parâmetros.