【问题标题】:Unchecked boxes using checkboxGroupInput in Shiny在 Shiny 中使用 checkboxGroupInput 的未选中框
【发布时间】:2017-01-31 06:25:31
【问题描述】:

编辑:我最初的问题是关于 checkboxInput(),但我已更新为 checkboxGroupInput() 以更好地反映我的问题...

我正在尝试让我的 Shiny 应用根据 checkboxGroupInput 的(未)选中状态来做两件事之一。

选中这些框后,我可以让我的代码工作。但是,我不知道如何使取消选中所有框导致独特的结果。

我该怎么做?

这个google groups question 4 多年前问过这个问题,但当时的回答是这只是一个错误。我假设这个问题已经解决了??

以下是可重现的示例。 - 在此示例中,取消选中该框会导致错误读取“如果:参数长度为零时出错。”

library(shiny)

ui <-  fluidPage(
  checkboxGroupInput(inputId = "test.check", label = "", choices = "Uncheck For 2", selected = "Uncheck For 2"),
  verbatimTextOutput(outputId = "test")
)

server <- function(input, output) {

  output$test <- renderPrint({
    if(input$test.check == "Uncheck For 2") {
      1
    } else {
      2
    }
  })


}

shinyApp(ui = ui, server = server)

我可以使用“if.unchecked”类型的函数吗?

  • 我在else 语句之后尝试了is.null,结果与上例相同......

【问题讨论】:

  • 试试is.null这种方式:if(!is.null(input$test.check) &amp;&amp; input$test.check == "Uncheck For 2")

标签: r if-statement checkbox input shiny


【解决方案1】:

这是有效的代码:

library(shiny)

ui <-  fluidPage(
  checkboxGroupInput(inputId="test.check", label="", choices="Uncheck For 2", selected="Uncheck For 2"),
  verbatimTextOutput(outputId = "test")
)

server <- function(input, output) {
  output$test <- renderPrint({
    if(!is.null(input$test.check)) {
      1
    } else{
      2
    }
  })
}

shinyApp(ui = ui, server = server)

【讨论】:

  • 谢谢!那么这只是一个布尔测试吗?另外,我想使用checkboxGroupInput,以便为我的输入提供一个标题(checkboxInput 没有参数)。
  • 也许我应该将我的问题重新表述为如何根据未选中的 checkboxGroupInput 的所有检查来选择操作....
  • 好的,在这种情况下使用is.null() 可以工作。我用checkboxGroupInput修改了我的回复。
  • 谢谢。不过,我很好奇为什么将is.null() 用于语句的else 部分不起作用,但在if 语句中使用!is.null 确实... ???
  • 是的,这很奇怪。我自己也弄不明白为什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-03
  • 2020-08-14
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
相关资源
最近更新 更多