R 传单太长,零和NAs可能是问题所在?
我有一个面板数据2010-2018的数据框架,格式如下,其中一些列包含零,一些列在给定年份仅由零组成 全为零的年份应该是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
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)```