[英]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)
您可以使用observeEvent
和updateNumericInput
來完成。 代碼如下所示:
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.