簡體   English   中英

如何在應用程序中調整數字輸入 shiny

[英]How to adjust numericinput in a app shiny

我有一個帶有兩個numericinput的應用程序。 兩者都呈現 0 和 1 之間的值。我想做的是: 由於兩個權重的總和必須等於 1,所以當我 select 第一個權重,例如 0.2,第二個將是 0.8。 明白了嗎?

可執行代碼如下

library(shiny)

ui <- fluidPage(
  
  numericInput("weight1", label = h4("Weight 1"),
               min = 0, max = 1, value = 0.5),
  
  numericInput("weight2", label = h4("Weight 2"),
               min = 0, max = 1, value = 0.5),
  
  helpText("The sum of weights should be equal to 1"),
  
  hr(),
  
  fluidRow(column(3, verbatimTextOutput("value1"))),
  fluidRow(column(3, verbatimTextOutput("value2")))
  
)

server <- function(input, output,session) {
  
  output$value1 <- renderPrint({ input$weight1 })
  
  output$value2 <- renderPrint({ input$weight2 })
  
}

shinyApp(ui = ui, server = server)

在此處輸入圖像描述

您可以使用observeEventupdateNumericInput來完成。 代碼如下所示:

server <- function(input, output,session) {
  
  observeEvent(input$weight1, {
    updateNumericInput(session, 'weight2',
                       value = 1 - input$weight1)
  })
  
  output$value1 <- renderPrint({ input$weight1 })
  
  output$value2 <- renderPrint({ input$weight2 })
  
}

注意:如果您只處理兩個數字並且每次需要總和等於 1,則不需要updateNumericInput

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM