Я пытаюсь получить максимальное расстояние между двумя точками для нескольких человек (data$id)
.
Я построил это для l oop:
for (i in unique(data$id)) {
ind_search <- data[data$id==i,] # here I am splitting the data by each individual
mat <- data.matrix(ind_search[, c(5:6)]) # matrix including only latitude and longitude
distances <- distm(mat, fun=distGeo) # distance matrix with all distances between every pair of points
print(which(distances == max(distances), arr.ind = TRUE)) #prints the combinations of rows/columns that provide the maximum distance
}
Это делает работать, но это не дает мне именно то, что я ожидал. Итак, я получаю такой список:
row col
[1,] 650 153
[2,] 153 650
row col
[1,] 936 749
[2,] 749 936
row col
[1,] 720 63
[2,] 63 720
row col
[1,] 636 206
[2,] 206 636
row col
[1,] 237 72
[2,] 72 237
row col
[1,] 159 44
[2,] 44 159
1-й выпуск: я не знаю, к какому идентификатору принадлежат эти группы
2-й выпуск: было бы лучше получить уже фактическое расстояние. Вместо этого теперь мне все равно придется делать «distances[650,153]
» для каждой группы.
Есть ли какие-либо предложения по получению фактического расстояния, с которым связан каждый человек? Кроме того, какие-либо другие предложения по улучшению l oop? Или лучше использовать функции. Спасибо!