R Shiny:在 UI 中使用无功输出

R Shiny: using a reactive output in UI

我正在构建一个闪亮的应用程序,它将按用户定义的切点对人口计数进行求和。可以是 0-100 之间的任意数量的切点。

我的想法是让用户定义他们想要的年龄类别的数量,然后让他们输入范围。为此,我安装了包 shinyMatrix.

理想情况下,我希望矩阵中的行数等于用户定义的切割数,但这需要 UI 函数中的反应值。

ui <- shinyUI(fluidPage(
  sidebarLayout(sidebarPanel(
    numericInput("breaks", "Enter number of age groups", 0, min= 1, max= 100),
    matrixInput("grid", value= matrix(NA,6,2, dimnames = list(NULL, c("lower", "upper"))),
                  rows = list(extend = TRUE),
                  cols = list(names = TRUE)),
    actionButton("calc", "Calculate")
  ),
  mainPanel(
    h4("Population Sum by group"),
    dataTableOutput("table")
  )
  )
))

所以 matrixInput 中的 6 应该是 output$breaks

您可以在服务器端使用 updateMatrixInput 来更新“网格”,将行数设置为 input$breaks

  observeEvent(input$breaks, {
    updateMatrixInput(session,inputId = "grid",
                      value = matrix(NA,input$breaks,2,dimnames =list(NULL,c("lower","upper"))))
  })