I've found some information about how to change the value
of a sliderInput
with a reactive expression within the siderbarPanel
. But instead of the value
, I'd like to change min
and max
of the slider with a numericInput
. In this script for server.R
it says that only label
and value
can be changed for sliders. Is there any other possibility to change the min/max values of sliderInput
with a reactive expression?
Here's an exmple:
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)
})
}
I think this is best accomplished by using shiny's dynamic UI functions via renderUI()
and uiOutput()
. Try out the following example:
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)
})
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With