我发现了some information有关如何在value
内更改sliderInput
siderbarPanel
的{{1}}动态表达式。但是,我希望使用value
更改滑块的min
和max
,而不是numericInput
。在server.R
的{{3}}脚本中,它表示只能为滑块更改label
和value
。是否还有其他可能使用反应式表达式更改sliderInput
的最小值/最大值?
这是一个例子:
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()
))
server.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)
})
答案 0 :(得分:12)
我认为最好通过renderUI()
和uiOutput()
使用闪亮的动态UI功能来实现。试试下面的例子:
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()
))
server.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)
})
})