R блестящий: проверить numericInput с помощью логического оператора

В блестящем приложении можно ввести число (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"),
...

Выход:

Предупреждение: ошибка в: аргумент имеет нулевую длину

Может кто-нибудь помочь мне найти решение? Спасибо!

1 ответ

Решение

В этом примере приложения вы можете ввести число с numericInput виджет, который затем отправляется на сервер и в реактивной среде выполняется тест. Его результат либо 1 или же 0 и доступен через 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)
Другие вопросы по тегам