R Shiny checkboxGroupInput-基于不同组合的动作?

时间:2018-09-09 16:03:59

标签: r shiny

我正在与R Shiny合作构建一个简单的绘图应用程序,但我认为我不太了解checkboxGroupInput是如何工作的,R Shiny应用程序网站上的文档也不太有用,所以我希望得到一些澄清。

这是我的checkboxGroupInput的样子:

checkboxGroupInput("trend1DisplayOptions", "Graph Display Options",
                                    choiceNames = list("Connect Data Points", "Display Loess Smoother with Uncertainty Bounds"),
                                    choiceValues = list("connect", "loess"),
                                    selected = "connect")

因此,我实质上是在寻找显示4种不同“类型”的图,具体取决于所选择的复选框(是否显示黄土/连接点)。

在我的server代码中,下面是if/else语句:

if (input$trend1DisplayOptions == "connect" && input$trend1DisplayOptions != "loess") {
  # Only connect points
  p <- plot_ly(x = df2$labels, y = df2$values, type = 'scatter', mode='lines+markers') %>%
    layout(xaxis = list(type = "category")) 
  p

# Probably wrong way to check
} else if (input$trend1DisplayOptions == "connect" && input$trend1DisplayOptions == "loess") {
  # Should display nothing

# Probably wrong way to check
} else if (input$trend1DisplayOptions != "connect" && input$trend1DisplayOptions == "loess") {
  # Should display nothing

} else if (is.null(input$trend1DisplayOptions)) {
  # Should show
  p <- plot_ly(x = x_labels, y = df$values, type = 'scatter') %>%
    layout(xaxis = list(type = "category"), title = input$trendTitle) 
  p

}

我遇到的问题是,当同时选中两个复选框时,shiny应用程序应该什么也不显示,但是它仍然显示第一个if语句的情节(即,仅“连接” “)。而且,当两者均未选择时,我会收到missing value where TRUE/FALSE needed错误。

我对checkboxGroupInput有什么误解?

我可以看到问题是假设输入值同时等于2个值。那么,检查复选框1是否被选中,复选框2是否被选中,反之亦然的正确方法是什么呢?另外,我在该论坛上进行了搜索,以查看在未选择任何一个时如何处理,看来is.null()是正确的选择。为什么对我的情况不起作用?

1 个答案:

答案 0 :(得分:1)

好像我误读了S.O之一。答案。我应该使用requestsdef sendCommand(): requests.get('http://ip:port/sendcommand/arm_id=1&camera_id=2&command_type=3&command_value=4') def getCommand(): r = requests.get('http://ip:port/receivecommand/arm_id=1') if r.status_code == 200: return r.content else: raise requests.exceptions.ConnectionError('request failed') 来检查组合。

如果有人需要,这是正确的版本:

%in%