10

我找到了一些关于如何在. 但不是,我想用 . 更改滑块的和。在这个脚本中,它说只有并且可以为滑块更改。是否有任何其他可能性可以使用反应式表达式更改最小/最大值?valuesliderInputsiderbarPanelvalueminmaxnumericInputserver.RlabelvaluesliderInput

这是一个例子:

ui.R:

shinyUI(pageWithSidebar(
  
  #Sidebar with controls to select the variable to plot
  sidebarPanel(
   
  #Numeric Inputs
    numericInput("min_val", "Enter Minimum Value", 1993),
    
    numericInput("max_val", "Enter Maximum Value", 2013),

  #Slider 
    sliderInput("inSlider", "Slider", 
                min=1993, max=2013, value=2000),

# Now I would like to change min and max from sliderInput
# by changing the numericInput.

  mainPanel()
))

服务器.R:

library(shiny)

shinyServer(function(input, output, session) {

  reactive({
    x<-input$min_val
    y<-input$max_val
    updateSliderInput(session, "inSlider", min=x, max=y, value=x)
  })
}
4

1 回答 1

14

我认为这最好通过使用闪亮的动态 UI 功能来renderUI()实现uiOutput()。试试下面的例子:

用户界面

library(shiny)

shinyUI(pageWithSidebar(
  headerPanel("Test Shiny App"),

  sidebarPanel(
    #Numeric Inputs
    numericInput("min_val", "Enter Minimum Value", 1993),
    numericInput("max_val", "Enter Maximum Value", 2013),
    #display dynamic UI
    uiOutput("slider")
  ),

  mainPanel()
))

服务器.R

library(shiny)

shinyServer(function(input, output, session) {

  #make dynamic slider
  output$slider <- renderUI({
    sliderInput("inSlider", "Slider", min=input$min_val, max=input$max_val, value=2000)
  })

})
于 2013-09-09T14:42:13.530 回答