[英]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.