R shiny:使用逻辑运算符测试 numericInput

R shiny: test numericInput by using logical operator

在闪亮的应用程序中,可以输入一个数字 (numericInput)。一个方法应该确保如果数字等于 1 它保持 1,但在所有其他情况下 (x!=1) 变量必须设置为 0.

server.r:

...    
checkNumber=reactive({
      if(!is.null(input$data)){    

      output$n_insertNumber<-renderUI({
        if(!is.null(input$data)){
          numericInput("number", "Number", value = 8)
        }  
      })

      x<-input$number
      if (x!=1){x==0}
      }
})
...

ui.r:

...    
uiOutput("n_insertNumber"),
...

输出:

Warning: Error in if: argument is of length zero

有人可以帮我找到解决办法吗?谢谢!

在此示例应用程序中,您可以使用 numericInput 小部件输入一个数字,然后该小部件将转到服务器并在反应性环境中进行测试。其结果是 10,可通过 Variable() 访问。


library(shiny)

ui <- shinyUI(fluidPage(

   titlePanel("Example"),

   sidebarLayout(
      sidebarPanel(
         numericInput("number", "Number", value = 8)
      ),

      mainPanel(
         verbatimTextOutput("n_insertNumber")
      )
   )
))

server <- shinyServer(function(input, output) {

  Variable <- reactive({
    ifelse(test = input$number == 1, yes = 1, no = 0)
  })

   output$n_insertNumber <- renderPrint({
     Variable()
   })
})


shinyApp(ui = ui, server = server)