Листовка для R, не отображающая полигоны из файла формы - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь сделать хороплет с помощью листовки. Я скачал шейп-файл ZCTA из data.gov и импортировал его в R через readOGR. Затем, когда вы помещаете этот файл в буклет, ничего не происходит.

Я думаю, что проблема может заключаться в том, что латы и лоны из шейп-файла импортируются как числа вместо чисел? За исключением случаев, когда я пытаюсь преобразовать эти переменные в числа, я получаю сообщение об ошибке:

Ошибка в `$ <-. Data.frame` (` * tmp * ', lat, value = numeric (0)): замена содержит 0 строк, данные имеют 33144 </p>

С другой стороны, это всего лишь предположение, и я новичок в листовке и картографии в целом; Я все еще учусь, какой путь.

Вот мой код:

shape <- readOGR(dsn = path.expand("//cifs2/radonfin$/MaxG/In Progress/Geographical Capture/Shape Files"), 
                 layer = "tl_2018_us_zcta510")
    shape@data$GEOID10 = as.numeric(as.character(shape@data$GEOID10))
    colnames(shp_Patients_by_ZCTA)[colnames(shp_Patients_by_ZCTA)=="INTPTLAT10"] <- "lat"
    colnames(shp_Patients_by_ZCTA)[colnames(shp_Patients_by_ZCTA)=="INTPTLON10"] <- "lng"

shape %>%
    leaflet(options = leafletOptions( minZoom = 8,
                                      maxZoom = 12,
                                      dragging = TRUE))  %>% 
        addProviderTiles("CartoDB.PositronNoLabels", group = "Light Mode")  %>%
        addProviderTiles("CartoDB.DarkMatterNoLabels", group = "Dark Mode") %>%
            addPolygons() %>%
                setView(lng = -71.808206, lat = 42.016621, zoom = 8) %>%
                    setMaxBounds(lng1 = -73.561893,
                                 lat1 = 42.855596,
                                 lng2 = -69.889730,
                                 lat2 = 41.001180) %>%
                        addMarkers(data = Hospital_Locations, 
                                   lat = Hospital_Locations$Latitude, 
                                   lng = Hospital_Locations$Longitude, 
                                   label = Hospital_Locations$Location) %>%
                            addLayersControl(baseGroups = c("Light Mode", "Dark Mode"), 
                                             overlayGroups = c("Boston", "Mansfield", "Milford", "Saint Anne's"))

Мой ожидаемый результат - листовка с полигонами, описанными шейп-файлом, но фактические результаты таковы:

  1. Я получаю ошибку при преобразовании lat и lon в числа; или если я пропущу это,

  2. R останавливается, пока я не остановлю код.

Я очень ценю любую помощь, которую вы можете оказать !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...