Я уже просмотрел несколько ответов, но не смог применить его к моим проблемам. См:Как рассчитать расстояние между местоположениями из отдельных df в R
Calculating the distance between points in different data frames
Calculating number of points within a certain radius
find locations within certain lat/lon distance in r
find number of points within a radius in R using lon and lat coordinates
Identify points within specified distance in R
У меня есть ДФ loc
и stop
. За каждый stop
Я хочу найти расстояние до loc
.
Мои места
loc <- data.frame(station = c('Baker Street','Bank'),
lat = c(51.522236,51.5134047),
lng = c(-0.157080, -0.08905843),
postcode = c('NW1','EC3V')
)
Мои остановки
stop <- data.frame(station = c('Angel','Barbican','Barons Court','Bayswater'),
lat = c(51.53253,51.520865,51.490281,51.51224),
lng = c(-0.10579,-0.097758,-0.214340,-0.187569),
postcode = c('EC1V','EC1A', 'W14', 'W2'))
В конечном итоге я хотел бы что-то вроде этого:
df <- data.frame(loc = c('Baker Street','Bank','Baker Street','Bank','Baker Street','Bank','Baker Street','Bank'),
stop = c('Angel','Barbican','Barons Court','Bayswater','Angel','Barbican','Barons Court','Bayswater'),
dist = c('x','x','x','x','x','x','x','x'),
lat = c(51.53253,51.520865,51.490281,51.51224,51.53253,51.520865,51.490281,51.51224),
lng = c(-0.10579,-0.097758,-0.214340,-0.187569,-0.10579,-0.097758,-0.214340,-0.187569),
postcode = c('EC1V','EC1A', 'W14', 'W2','EC1V','EC1A', 'W14', 'W2')
)
Мой набор данных является относительно большой, так что я ищу для эффективного метода решения этой проблемы.
Любые идеи о том, как достичь этого?
Возможно, я не читаю вопрос правильно, но пытаетесь ли вы найти расстояние между каждой точкой в стоп-кадрах данных из каждой точки в ядре данных? – Awhstin
@Awhstin Да точно ... каждое расстояние от 'stop' до' loc' – Davis
По совпадению, я [ответил на вопрос вчера] (http://stackoverflow.com/a/40898595/496488), который имеет базовый подход R, который будет работать здесь, если вы замените 'loc' на' круги' и 'stop' для' dat', а также убедитесь, что вы переносите любые столбцы, которые вы хотите сохранить из каждого фрейма данных. (Вопросы не дубликаты, но ответы схожи.) – eipi10