У меня есть набор данных, и я пытаюсь найти группу мест в ближайшем городе.У меня есть набор данных 1 (df1), который содержит адреса местоположения с долготой и широтой.Я хочу отобразить эти адреса на все ближайшие города (в кадре данных df2), которые находятся в радиусе 50 миль.
g_lat <- c(45.52306, 40.26719, 34.05223, 37.38605, 37.77493)
g_lon <- c(-122.67648,-86.13490, -118.24368, -122.08385, -122.41942)
address <- c(1,2,3,4,5)
df1 <- data.frame(g_lat, g_lon, address)
g_lat <- c(+37.7737185, +45.5222208,+37.77493)
g_lon <- c(-122.2744317,-098.7041549,-122.41942)
msa <- c(1,2,3)
df2 <- data.frame(g_lat, g_lon, msa)
Я хочу выводить следующее, показывая все MSA, с которыми связан этот адрес:
address g_lat g_lon msa
5 37.77493 -122.41942 1
5 37.77493 -122.41942 3
Пожалуйста, дайте мне знать, как этого можно достичь.Я пробовал следующее:
library(geosphere)
# create distance matrix
mat <- distm(df1[,c('g_lon','g_lat')], df2[,c('g_lon','g_lat')], fun=distVincentyEllipsoid)
error:
Error in .pointsToMatrix(y) : longitude < -360
# assign the name to the point in list1 based on shortest distance in the matrix
df1$locality <- df2$locality[max.col(-mat)]