У меня есть этот вызов
distances <- crossing(nodes, gps_points) %>%
mutate(dist = geosphere::distHaversine(cbind(lon, lat), cbind(rlon, rlat)))
Но это занимает много времени. Просто функция пересечения занимает 0,36 se c. Whole Statement занимает 2,587 se c.
Можно ли оптимизировать этот вызов?
dput(head(nodes))
structure(list(ids = c(292376151, 1112377287, 6902561109, 5324247975,
1112377281, 7018492265), ids_igraph = c(128974, 128973, 128972,
128971, 128970, 128969), lon = c(11.831088, 11.830884, 11.8307377,
11.8307106, 11.8305447, 11.8303853), lat = c(48.1111416, 48.1108747,
48.1106855, 48.1106505, 48.1104559, 48.1102703)), row.names = c(833886L,
2173435L, 4292366L, 4058008L, 2173434L, 4315822L), class = "data.frame")
dput(head(gps_points))
structure(list(rlon = c(11.7989692, 11.7982155, 11.7968209, 11.7961655,
11.7957267, 11.7944537), rlat = c(48.0742471, 48.0739067, 48.0733855,
48.0730923, 48.0728656, 48.0722014)), row.names = c(3250429L,
3250548L, 323901L, 3250542L, 3250544L, 323902L), class = "data.frame")
вы также можете скачать node
и gps_points
как файлы csv или dput здесь:
csv-файлы node и gps_points
dput-файлы node и gps_points
Большое спасибо, BR.