R 传单太长,零和NAs可能是问题所在?

R 传单太长,零和NAs可能是问题所在?,r,dplyr,shiny,leaflet,legend,R,Dplyr,Shiny,Leaflet,Legend,我有一个面板数据2010-2018的数据框架,格式如下,其中一些列包含零,一些列在给定年份仅由零组成 全为零的年份应该是NAs,但这是一个单独的问题。我主要担心的是,传单闪亮图例在年份和变量都为零的情况下会出现错误行为,如下图所示。寻找指针——在过去的一周里,我试着修复闪亮的一端、数据帧以及其间的所有东西,我已经智穷到极点了。下面是闪亮的代码和图片 year tract Black MedianRent Moved in 2015 or later Moved in 201

我有一个面板数据2010-2018的数据框架,格式如下,其中一些列包含零,一些列在给定年份仅由零组成

全为零的年份应该是NAs,但这是一个单独的问题。我主要担心的是,传单闪亮图例在年份和变量都为零的情况下会出现错误行为,如下图所示。寻找指针——在过去的一周里,我试着修复闪亮的一端、数据帧以及其间的所有东西,我已经智穷到极点了。下面是闪亮的代码和图片

year            tract Black MedianRent Moved in 2015 or later Moved in 2017 or later Built 2010 or later SNAP benefits Bachelor's degree
1 2018 Census Tract 401    21        919                      0                      0                   0         91831              2071
2 2018 Census Tract 402     0        882                      0                      0                   0         90117              1217
3 2018 Census Tract 403    37        749                      0                      0                   0         94611              1479
4 2018 Census Tract 404    85        908                      0                      0                   0         97322              2272
5 2018 Census Tract 405     5        810                      0                      0                   0         76444              1731
6 2018 Census Tract 406     0        946                      0                      0                   0        122761               581

图书馆(传单)
图书馆(RColorBrewer)
ui%选择(-c(年、域、几何)),多个=假),
checkboxInput(“图例”、“显示图例”,真)
))
服务器%
选择(输入$variable,tract)
}) 
colorpal%
addProviderTiles(提供程序$OpenStreetMap)%>%
fitBounds(-82.976990,41.253205,-82.364502,41.662607)
})
观察({
pal%
clearShapes()%>%
clearControls()%>%
addPolygons(label=~paste(“Tract:”,Tract,paste0(输入$variable,“:”),as.numeric(eval(as.symbol(输入$variable))),
fillColor=~pal(as.numeric(eval)(as.symbol(input$variable)),
重量=1,
平滑因子=0.5,
不透明度=1.0,
fillOpacity=.88,
highlightOptions=highlightOptions(color=“白色”,
重量=2,
bringToFront=TRUE))%>%
addLegend(“map”,position=“bottomleft”,pal=pal,value=~filteredata()[[1]],opacity=1,title=“Legend”,labFormat=labelFormat(suffix=“units”))
})
}
shinyApp(用户界面、服务器)```
library(leaflet)
library(RColorBrewer)


ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(top = 10, right = 10,
                sliderInput("year", "Select Year:", min = min(final$year), max = max(final$year),
                            value = 2010, step = 1, sep = ""),
                selectInput("variable", "Variable:", choices = names(as.data.frame(final) %>% select(-c(year,tract,geometry))), multiple = FALSE),
                
  
                checkboxInput("legend", "Show legend", TRUE)
                
  ))

server <- function(input, output, session) {
  
  filteredData <- reactive({
    final %>%
      filter(year == input$year) %>%
      select(input$variable, tract)
      }) 
  
  
  colorpal <- reactive({
    colorNumeric("YlGnBu", as.data.frame(filteredData())[names(filteredData())[1]], na.color = "#808080")
  })
  
  output$map <- renderLeaflet({
    
    leaflet(final) %>%
      addTiles() %>%
      addProviderTiles(providers$OpenStreetMap) %>%
      fitBounds(-82.976990,41.253205,-82.364502,41.662607)
  })
  
  
  observe({
    pal <- colorpal()
    leafletProxy("map", data = filteredData()) %>%
      clearShapes() %>%
      clearControls() %>%
      addPolygons(label = ~paste ("Tract:", tract, paste0(input$variable,":"),as.numeric(eval(as.symbol(input$variable)))),
                  fillColor = ~pal(as.numeric(eval(as.symbol(input$variable)))),
                  weight = 1,
                  smoothFactor = 0.5,
                  opacity = 1.0,
                  fillOpacity = .88,
                  highlightOptions = highlightOptions(color = "white",
                                                      weight = 2,
                                                      bringToFront = TRUE)) %>%
      addLegend("map", position ="bottomleft", pal = pal, values = ~filteredData()[[1]], opacity=1, title = "Legend", labFormat = labelFormat(suffix = "units"))
  })
}

shinyApp(ui, server)```