Простой способ сопоставить широту и долготу диапазонов для координирования значений в R? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть фрейм данных, который содержит информацию о 3000 больницах, а также фрейм данных, содержащий случаи 1 миллиона + прививок. Я пытаюсь сопоставить каждую прививку либо с больницей, включенной в данные о больницах, либо просто с местом прививки, которое не является больницей.

Все больницы в информационном фрейме больницы имеют поле геолокации координат широты и долготы. Кадр данных о прививках также имеет столбцы широты и долготы. Проблема в том, что во многих случаях эти координаты не являются точными, поэтому я не могу просто сопоставить их напрямую с последними значениями в наборе данных больницы. Поэтому я создаю небольшой пространственный буфер и широчайший диапазон для каждой геолокации больниц и смотрю, попадают ли прививки в эти диапазоны. Проблема в том, что код, который я запускаю, занимает некоторое время, и я уверен, что есть более простой способ сделать то, что я пытаюсь сделать.

Спасибо!

total_in_hospital_vaccinations <- 0
total_out_hospital_vaccinations <- 0
hospitals$vaccinations <- 0
for(i in 1:NROW(hospitals)){
    hospital <- hospital[i,]
    name <- hospital$name
    in_range <- vaccinations[(vaccinations$long >= hospital$longitude_low & vaccinations$long <= hospital$longitude_high
       & vaccination$lat <= hospital$latitude_high & vaccination$lat >= hospital$latitude_low),]
    hospitals[(hospitals$name == name),]$vaccinations <- NROW(in_range)
    total_in_hospital_vaccinations <- total_in_hospital_vaccinations + NROW(in_range)
total_out_hospital_vaccinations <- NROW(vaccinations) - total_in_hospital_vaccinations
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...