R: Блестящий не может прочитать данные для построения - PullRequest
0 голосов
/ 25 августа 2018

Все воспроизводимо, включая данные для построения

Я строю базовую карту, но данные не читаются сервером. R:

Он не загружает файл geojson, который я использую для построения карты, мне нужно вручную Ctrl + Введите эту строку, чтобы она заработала:

Если нет, R сообщает, что не смог найти объект Перу:

 peru <- geojsonio::geojson_read("https://raw.githubusercontent.com/juaneladio/peru-geojson/master/peru_departamental_simple.geojson", what = "sp")

Что может быть не так?

library(shiny)
library(dplyr)
library(DT)
require(leaflet)
library(readr)




ab <- reactive({


      ventas_agosto_16 <- data.frame("FECHA_PED" = 1:25,  "DEPARTAMENTO" = c("LIMA", "AREQUIPA", "LA LIBERTAD",
                                                                             "MOQUEGUA","HUANUCO","CUSCO",        
                                                                             "PIURA","CALLAO","CAJAMARCA",    
                                                                             "UCAYALI","JUNIN","ICA",          
                                                                             "LAMBAYEQUE","AMAZONAS","ANCASH",       
                                                                             "AYACUCHO","LORETO","SAN MARTIN",   
                                                                             "TACNA","MADRE DE DIOS","PUNO",         
                                                                             "TUMBES","PASCO","APURIMAC",     
                                                                             "HUANCAVELICA"),
                                     "TOTAL_PEDIDO" = runif(n = 25, min = 2, max = 25))


      peru <- geojsonio::geojson_read("https://raw.githubusercontent.com/juaneladio/peru-geojson/master/peru_departamental_simple.geojson", what = "sp")


      peru$ventas <- ventas_agosto_16$TOTAL_PEDIDO

      peru

})



server <- function(input, output) {






  output$mymap <- renderLeaflet({




    pal <- colorBin("YlOrRd", domain = peru$ventas, bins = 5)


    labels <- sprintf(
       "<strong>%s</strong><br/>%g soles",
       peru$NOMBDEP, peru$ventas
     ) %>% lapply(htmltools::HTML)



    leaflet(peru) %>%
      setView(-75, -10, 4) %>%
      addProviderTiles("MapBox", options = providerTileOptions(
        id = "mapbox.light",
        accessToken = Sys.getenv('MAPBOX_ACCESS_TOKEN'))) %>%
      addPolygons(
        fillColor = ~pal(ventas),
        weight = 2,
        opacity = 1,
        color = "white",
        dashArray = "3",
        fillOpacity = 0.7,
        highlight = highlightOptions(
          weight = 3,
          color = "#666",
          dashArray = "",
          fillOpacity = 0.7,
          bringToFront = TRUE),
        label = labels,
        labelOptions = labelOptions(
          style = list("font-weight" = "normal", padding = "3px 8px"),
          textsize = "15px",
          direction = "auto")) %>%
      addLegend(pal = pal, values = ~ventas, opacity = 0.7, title = NULL,
                position = "bottomright")

  })


}

Спасибо!

1 Ответ

0 голосов
/ 25 августа 2018

Вы почти на месте, просто переместите reactive внутри серверной функции и переназначьте "call" ab() на peru внутри renderLeaflet для плавного выполнения с остальным кодом.

ui <- fluidPage(
       leafletOutput(outputId='mymap', width = "100%", height = 400)
       )

server <- function(input, output, session) { #session is an important argument for server function 

     ab <- reactive({ ....

           })

     output$mymap <- renderLeaflet({
           #browser()
           peru <- ab()  
      ....
  }

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