r语言 - 滑块输入的最小值/最大值的交互式/无功变化



我找到了一些关于如何在siderbarPanel中使用反应表达式更改sliderInput value的信息。但是我想用numericInput更改滑块的minmax,而不是value。在此脚本中server.R它说只能更改滑块的labelvalue。是否有其他可能使用反应表达式更改sliderInput的最小/最大值?

这是一个示例:

用户界面。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)
  })
}

我认为最好通过 renderUI()uiOutput() 使用 Shiny 的动态 UI 函数来实现。尝试以下示例:

用户界面。R

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)
  })
})

最新更新