我找到了一些关于如何在siderbarPanel
中使用反应表达式更改sliderInput
value
的信息。但是我想用numericInput
更改滑块的min
和max
,而不是value
。在此脚本中server.R
它说只能更改滑块的label
和value
。是否有其他可能使用反应表达式更改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)
})
})