для l oop не идентифицируя каждое значение в переменной i - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь получить максимальное расстояние между двумя точками для нескольких человек (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? Или лучше использовать функции. Спасибо!

...