Я пытаюсь найти способ кластеризации нескольких адресов на основе близости. У меня есть широта и долгота, которая в этом случае идеальна, так как некоторые кластеры будут пересекать границы City / Zip. То, что я хотел бы использовать в качестве отправной точки, похоже на это, но до 10000 строк в таблице:
Hospital.Addresses <- tibble(Hospital_Name = c("Massachusetts General Hospital","MGH - Blake Building","Shriners Hospitals for Children — Boston","Yale-New Haven Medical Center", "Memorial Sloan Kettering", "MSKCC Urgent Care Center", "Memorial Sloan Kettering Blood Donation Room"),
Address = c("55 Fruit St", "100 Blossom St", "51 Blossom St", "York St", "1275 York Ave", "425 E 67th St", "1250 1st Avenue Between 67th and 68th Streets"),
City = c("Boston", "Boston", "Boston", "New Haven", "New York", "New York", "New York"),
State = c("MA", "MA", "MA", "CT", "NY", "NY","NY"),
Zip = c("02114","02114","02114", "06504", "10065", "10065", "10065"),
Latitude = c(42.363230, 42.364030, 42.363090, 41.304507, 40.764390, 40.764248, 40.764793),
Longitude = c(-71.068680, -71.069430, -71.066630, -72.936781, -73.956810, -73.957127, -73.957818))
Я бы хотел сгруппировать группы адресов, которые находятся в пределах ~ 1 мили друг от друга,потенциально без расчета расстояния Хаверсайна между 10000 отдельных точек. Мы могли бы потенциально упростить математику и приблизительно оценить 1 милю как 0,016 градуса широты или долготы.
Идеальным результатом было бы то, что проверяет 3 больницы в Бостоне в группе 1 (все в пределах 1 мили друг от друга), больница в Нью-Хейвене самостоятельно в группе 2 (не в пределах 1мили всего остального), и все 3 больницы в Нью-Йорке находятся в группе 3 (все в пределах 1 мили друг от друга).
Вместо group_by () я больше ищу group_near ().
Любые предложения приветствуются!