繁体   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