2016-11-14 3 views
0

Файл BLschool.csv. Что я хочу сделать, это изменить карту на основе выбранного вами выбора.R - Блестящий виджет и листок, не подключающийся

Таким образом, если A выбран, то карта должна показывать только школы с оценкой качества A, также для B, C, D.

Однако, где значение input$schoolqual не поступают, или данные не является подмножеством какой-то причине, я получаю эту ошибку:

Error: schqual not found

server.R

sc <- read.csv("BLschools.csv", header = TRUE, sep=",") 

shinyServer(function(input, output){ 


    output$map <- renderLeaflet({ 

    schqual <- input$schoolqual %>% 
    school <- subset(sc, sc$Rateoutof4 == schqual) %>% 
    leaflet(data = school) %>% 
    setView(lng = -73.98928, lat = 40.75042, zoom = 10) %>% 
    addProviderTiles("CartoDB.Positron", options = providerTileOptions(noWrap = TRUE)) %>% 
    addMarkers(clusterOptions = markerClusterOptions(~lng, ~lat), icon = greenLeafIcon, 
      popup= ~paste("<b>", as.character(school$SchoolName),"</b><br/>", 
      "Rating: ", as.character(school$Rateoutof4),"<p></p>")) 
    }) 

}) 

ui.R

shinyUI(
fluidPage(
    titlePanel("NYC schools"), 
    sidebarLayout(
     sidebarPanel(
      selectInput(schoolqual, choices = c("A", "B","C", "D", "E"), selected = "A", label="school quality rating")), 
    mainPanel(leafletOutput("map")) 
    ) 
) 
) 

игнорируйте факт, что Rateoutof4, несмотря на имя, находится в символах. Я забыл изменить имя столбца.

+0

Снимите '%>%' от 2 первых линий – HubertL

+0

@HubertL Удаление их - карта появляется как пустой, без каких-либо маркеров – SamFlynn

+0

Попробуйте сделать ваш код запускается внутри R сначала (за пределами блестящего приложения), легче отлаживать – HubertL

ответ

1

Вы можете попробовать с реактивным выражением:

shinyServer(function(input, output){ 
    school <- reactive(subset(sc, sc$Rateoutof4 == input$schoolqual)) 
    output$map <- renderLeaflet({ 
    leaflet(data = school()) %>% 
    setView(lng = -73.98928, lat = 40.75042, zoom = 10) %>% 
    addProviderTiles("CartoDB.Positron", 
        options = providerTileOptions(noWrap = TRUE)) %>% 
    addMarkers(clusterOptions = markerClusterOptions(~lng, ~lat), 
       icon = greenLeafIcon, 
       popup= ~paste("<b>", 
          as.character(school()$SchoolName), 
          "</b><br/>", 
          "Rating: ", 
          as.character(school()$Rateoutof4), 
          "<p></p>")) 
    }) 
}) 
+0

Эй! Это сработало, btw измените «schqual» на «schoolqual», когда вы удалили строку «schqual <- input $ schoolqual' – SamFlynn

Смежные вопросы