根据输入

时间:2017-12-30 22:05:16

标签: r shiny leaflet

我今天进入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来放置字符串,则会收到此错误。还有其他方法吗?谢谢!

0 个答案:

没有答案