gmapsdistance для каждой строки в dataframe

#r

#r

Вопрос:

Я попытался получить время в пути и расстояние для двух наборов местоположений, оба из которых представлены долготами и широтами. Ранее я использовал gmapsdistance, который вернет матрицу расстояний для каждой точки в двух векторах. Но здесь я только хочу вычислить расстояние для каждой строки. Поэтому я считаю целесообразным использовать функцию apply для каждой строки.

Данные выглядят следующим образом

  unique_pair <- structure(list(latitude = c(42.018435, 42.018435, 42.120501), longitude = c(-70.846707, -70.846707, -71.233164),x.x.locationlatitude = c(42.23656924, 42.361856, 41.901186), x.x.locationlongitude = c(-70.9865341, -71.065615, -71.093756), n = c(80L, 2L, 65L)), row.names = c(NA, -3L), class = c("tbl_df","tbl", "data.frame"))


abk<-apply(unique_pair,1,function(x) { gmapsdistance(
    origin =x[1] x[2],  # start point of journey
    destination = x[3] x[4],  # end point of journey
    mode = "driving",  # driving time
    shape = "long"  # format of output data 
    )})
  

[1,2] [3,4] — это lon и широта для двух местоположений. Но всегда возникает ошибка, такая, что

Если я не использовал , они использовали каждый lon и широту отдельно в качестве местоположений и сообщали о бесполезном результате.

Если я использовал для включения широты и lon в качестве точки для определения местоположения, это показывает нечисловой аргумент двоичного оператора

Я также рассматриваю возможность их цитирования, но это тоже не работает.

Может ли кто-нибудь помочь и дать некоторые рекомендации? Большое спасибо

Комментарии:

1. Привет, Хуэй, ты можешь сделать это минимально воспроизводимым примером? Решить проблему намного проще, если мы сможем вырезать и вставить ваши данные и код, воспроизвести ту же ошибку, которую вы получаете, а затем сможем разработать решение для публикации для вас. Спасибо 🙂

2. Похоже, что функция ищет строку, поэтому попробуйте использовать: paste0(x[42], " ", x[43])

3. Я только что добавил мини-набор данных, надеюсь, это сработает. Спасибо!

4. @Dave2e Привет, это работает! Спасибо