Shiny R中的ConditionalPanel不适用于第二组条件
我对在R中使用conditionalPanel有问题。基本上,第一个条件(condition=“input.year==2011”)正在工作,它为我提供了一个右左映射。但是,当我使用第二个条件(condition=“input.year==2012”)时,我得到了一个空映射!有没有关于如何摆脱这个问题的建议 这里是我的服务器和用户界面: 用户界面 服务器Shiny R中的ConditionalPanel不适用于第二组条件,shiny,Shiny,我对在R中使用conditionalPanel有问题。基本上,第一个条件(condition=“input.year==2011”)正在工作,它为我提供了一个右左映射。但是,当我使用第二个条件(condition=“input.year==2012”)时,我得到了一个空映射!有没有关于如何摆脱这个问题的建议 这里是我的服务器和用户界面: 用户界面 服务器 首先加载数据 PM25卫星%addRasterImage(城市覆盖), 颜色=pal_URB, 不透明度=0.6)%>% addLegend(
首先加载数据
PM25卫星%addRasterImage(城市覆盖),
颜色=pal_URB,
不透明度=0.6)%>%
addLegend(“右下角”,pal=pal\u URB,values=getValues(URB\u Cover\u nc),
title=“
PM2.5(mg/m3)城市覆盖层:”,
labFormat=labelFormat(前缀=”),
不透明度=0.6)
其他返回(地图)
})
输出$myMap=renderLeaflet(finalMap())
})
好的,我已经解决了这个问题。
我已经定义了两个变量:“变量1”和“变量2”,分别用于2011年和2012年。上述示例不可复制,您需要包括用于生成
传单的所有数据和变量。条件面板本身工作正常,这是他们应该做的。你能提供一个关于你的问题的最小工作示例吗?试着删除所有与你的问题无关的东西,也许你会自己找到答案。谢谢大家的反馈。我简化了与我的问题相关的脚本。基本上,我不知道如何更好地修改脚本。第一层是GeoJSON文件,已分配给2011年,并正确显示。第二层是tiff文件,已指定为2012年,但未显示。似乎只显示第一个条件…当选择第二个条件面板时,脚本运行“else return(map)”,为什么?
shinyUI(fluidPage(
# Title
titlePanel("Greater London Area, Satellite and UK AIR data"),
sidebarLayout(
sidebarPanel(
selectInput("year", "Choose a year", c("YEAR 2011" = "2011", "YEAR 2012" = "2012")),
conditionalPanel(
condition = "input.year == 2011",
selectInput("variable", "Choose a Layer", c("PM25_SAT" = "pm25_mean"))),
conditionalPanel(
condition = "input.year == 2012",
selectInput("variable", "Choose a Layer", c("URB_COVER" = "URB_Cover_nc")))
),
# Show leaflet map with a text div reporting the selected date and extents
mainPanel(
leafletOutput('myMap', height = 500, width = 800)
)
)))
####### Load data first
PM25_sat <- readOGR(dsn = "Copia.geojson",layer = "OGRGeoJSON")
popup_PM25_sat <- paste0("<strong>PM<sub>2.5</sub> (<font face=symbol>m</font>g/m<sup>3</sup>): </strong>",
PM25_sat$pm25_mean)
#### colors for the GeoJSON layer
qpal_SAT <- colorQuantile("Blues", PM25_sat$pm25_mean, n = 7)
#### colors for the GeoJSON layer legend
pal_SAT <- colorNumeric(
palette = "Blues",
domain = PM25_sat$pm25_mean)
###### Load geotiff file
URB_Cover_nc <- raster::raster("URB_cover.tif")
pal_URB <- colorNumeric(c("#FFFFCC", "#41B6C4","#0C2C84"), getValues(URB_Cover_nc),
na.color = "transparent")
#######################################################################
shinyServer(function(input, output) {
map = leaflet() %>% addTiles() %>% setView(-2, 52.5, 6)
finalMap <- reactive({
PM25_Layer <- input$variable
YEAR <- input$year
if (YEAR == "2011" & PM25_Layer == "pm25_mean")
return(map %>% addPolygons(data = PM25_sat,
stroke = FALSE, smoothFactor = 0.2,
fillOpacity = 0.5,
color = ~ qpal_SAT(pm25_mean),
popup = popup_PM25_sat) %>%
addLegend("bottomright", pal = pal_SAT, values = PM25_sat$pm25_mean,
title = "<br><strong>PM<sub>2.5</sub> (<font face=symbol>m</font>g/m<sup>3</sup>) Sat : </strong>",
labFormat = labelFormat(prefix = ""), opacity = 1))
if (YEAR == "2012" & PM25_Layer == "URB_Cover_nc")
return(map %>% addRasterImage(URB_Cover_nc,
colors = pal_URB,
opacity = 0.6) %>%
addLegend("bottomright",pal = pal_URB, values = getValues(URB_Cover_nc),
title = "<br><strong>PM<sub>2.5</sub> (<font face=symbol>m</font>g/m<sup>3</sup>) URB Cover: </strong>",
labFormat = labelFormat(prefix = ""),
opacity = 0.6))
else return (map)
})
output$myMap = renderLeaflet(finalMap())
})