我今天进入R闪亮,并且花了最后10个小时直接建立一个漂亮的闪亮webmap与传单集成......到目前为止大多数事情都有效! (yay holidays)但我对条件选择变量存在问题。
用户可以选择一个政党,其选举结果在地图上显示为彩色多边形。根据用户的派对选择,配色方案应相应更改。例如。用户选择派对1,配色方案应为'Blues',派对2为'Grays'等。
在传单部分中,我用这种方式定义颜色方案:
leafletProxy("austriaMap") %>%
addPolygons(data = data1(), color = "#444444", weight = 1, smoothFactor = 0.5,
opacity = 1.0, fillOpacity = 0.5,
fillColor = ~colorQuantile("Greys", data2())(data2()),
highlightOptions = highlightOptions(color = "white", weight = 2,
bringToFront = TRUE)
)
这很有效,但我希望根据选定的一方切换“灰色”部分。我尝试使用switch
函数从基于用户输入的颜色列表中进行选择:
col.list <- list("OrRd", "Greys", "Blues")
cols <- reactive({
switch(input$party,
"party1" = col.list[[1]],
"party2" = col.list[[2]],
"party3" = col.list[[3]])
})
哪个应该导致cols
持有相应的字符串。但是,当我将此字符串放在传单代码中时,我收到以下错误消息:
Warning: Error in UseMethod: no applicable method for 'toPaletteFunc' applied to an object of class "c('reactiveExpr', 'reactive')"
有什么想法吗?尽管它显而易见,但迄今为止这是最耗时的部分。这真的很奇怪,因为如果我手动将字符串放在传单部分,一切正常。如果我通过调用cols
来放置字符串,则会收到此错误。还有其他方法吗?谢谢!