У меня есть два списка, один содержит id
и для каждого id
набор координат:
+-------+------+------+
| store | lat | lon |
+-------+------+------+
| 123 | 37.2 | 13.5 |
| 456 | 39.1 | 9.1 |
| 789 | 45.4 | 11.0 |
+-------+------+------+
В то время как второй список метеостанций с координатами и некоторыми другими данными:
+----+--------+--------+---------------+----------------+
| id | lat | lon | name | address |
+----+--------+--------+---------------+----------------+
| 1 | 44.907 | 8.612 | airport_one | bond street |
| 2 | 39.930 | 9.720 | airport_two | oxford street |
| 3 | 40.020 | 15.280 | airport_three | ellesmere road |
+----+--------+--------+---------------+----------------+
Я бы хотел добавить две колонки в первый список (список магазинов) с указанием расстояния и названия ближайшего аэропорта, поэтому мне нужно сравнить каждый магазин с каждым аэропортом и вернуть кратчайшее расстояние.
Я пытался добиться этого в цикле for, используя функцию distm
, но я определенно что-то теряю:
for (val in 1:length(airport_master[,1])){
n <- distm(store_master[1,3:2], airport_master[val,6:5])
distances <- append(distances, n)
store_master$closest_airport <- airport_master$name[val])
}
Есть ли какая-нибудь библиотека или лучший способ достичь этого результата?