У меня есть набор точек местоположения от разных людей:
locations <- data.frame(
id=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
xcoord=c(1, 8, 5, 22, 26, 24, 37, 35, 39),
ycoord=c(3, 2, 9, 25, 23, 28, 31, 35, 33)
)
У каждого человека также есть одно центральное местоположение.
center <- data.frame(
id=c('A', 'B', 'C'),
xcoord=c(5, 24, 36),
ycoord=c(4, 23, 34)
)
Мне нужно знать расстояние до самая дальняя точка расположения от центральной точки для каждого человека. Я пробовал работать с distm()
и st_distance()
, но у меня возникли проблемы с аспектом группирования. Например,
distm(cbind(locations$xcoord, locations$ycoord), cbind(center$xcoord, center$ycoord))
отлично вычисляет расстояния, но не делает различий между людьми (и это тоже довольно неуклюже). У меня дюжина человек с сотнями баллов каждый, поэтому очень важно отслеживать идентификаторы. Мне легко конвертировать между объектами data.frame
и sf
, поэтому подойдет любой подход. Я бы хотел решение по трубопроводу, но я возьму все, что смогу. Спасибо!