【问题标题】:R Shiny - conditionalPanel and conditional valuesR Shiny - 条件面板和条件值
【发布时间】:2014-11-18 19:01:27
【问题描述】:

我的问题和这个类似:R studio shiny conditional statements

我的 ui.R 看起来像这样:

...
radioButtons("yes_or_no", "Yes or No?", c("yes"=1, "no"=0)),
  conditionalPanel(
    condition = "input.yes_or_no == '1'",
      numericInput("num_1", "First numeric input", 0, min=0),
      numericInput("num_2", "Second numeric input",0, min=0),
      numericInput("num_3", "Third numeric input",0, min=0)
  ),
...

当单选按钮设置为“否”并且不符合条件时,我希望值 num_1num_2num_3 等于 0。而且因为 ConditionalPanel 只是一个“图形”条件,它只影响控件小部件而不影响它们的值。 根据这个问题的答案(R studio shiny conditional statements)我在server.R文件中实现了以下内容:

yes_or_no <- input$yes_or_no
num_1 <- input$num_1
num_2 <- input$num_2
num_3 <- input$num_3

if (input$yes_or_no == 0) {
  num_1 <- 0
  num_2 <- 0
  num_3 <- 0
}
myfunction(yes_or_no, num_1, num_2, num_3)

但这不起作用。当我向 numericInputs 输入值时,即使我将 conditionalPanel 设置为“no”,它们也会保持连接 - 我的服务器端 if 语句不会用 0 覆盖这些变量。

有谁知道,如何实现这一点?提前致谢!

【问题讨论】:

    标签: r shiny rstudio shiny-server


    【解决方案1】:

    好的,在 Shiny Google-Group 的帮助下,我想出了办法。这是一个工作示例:

    服务器.R:

    library(shiny)
    shinyServer(function(input, output) {
    
      output$ttable1 = renderTable({
    
        output$num_2_ui <- renderUI({
          num_2 <- ifelse(input$yes_or_no == 0, 0, input$num_2)
          numericInput("num_2", "Value num_2", value=num_2, min=0)
        })
    
        yes_or_no <- input$yes_or_no
        num_2 <- input$num_2
    
        table1 <- data.frame(yes_or_no, num_2)
        print(t(table1))
    
      })
    })
    

    ui.R:

    library(shiny)
    
    shinyUI(fluidPage(
    
      titlePanel("test"),
    
      sidebarLayout(
        sidebarPanel(
          uiOutput("num_2_ui"),
          radioButtons("yes_or_no", "Yes or No?", c("yes"=1, "no"=0), selected="no")
    
        ),
    
        mainPanel(
          uiOutput("ttable1")
        )
      )
    ))
    

    不确定这是否是唯一也是最好的方法,但目前它对我有用。

    【讨论】:

      猜你喜欢
      • 2016-06-04
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      相关资源
      最近更新 更多