R shiny sliderInput with restricted range

匿名 (未验证) 提交于 2019-12-03 02:34:02

问题:

In my R shiny sliderInput I want to restrict the range of the input of a given slider with larger maximum value. For example assume the input has to be in the interval [1:10].

Of course I could now define min=1, max= 10 in sliderInput options, but then I will get only a slider with values in this interval.

My goal is to see a slider with values (for example) in [1:50], but the user can move this slider only in the interval [1:10]. This would make my app even better. Is this possible?

回答1:

Building up from your previous question you can use the min values, here slider 1 is restricted to 80 max and slider 2 restricted to 50

rm(list = ls()) library(shiny)  slider1limit <- 80 slider2limit <- 50  ui <-pageWithSidebar(    # Application title   headerPanel("Sliders should sum to 100!"),   # Sidebar with sliders whos sum should be constrained to be 100   sidebarPanel(     sliderInput("slider1", "Slider 1: ", min = 0, max = 100, value = 0, step=1),     uiOutput("slider")),    # Create table output   mainPanel(tableOutput("restable")) )  server <- function(input, output,session) {    observeEvent(input$slider2,{     values <- min((100 - input$slider2),slider1limit)     updateSliderInput(session, "slider1", min =0,max=100, value = values)   })   output$slider <- renderUI({     values <- min((100 - input$slider1),slider2limit)     sliderInput("slider2", "Slider 2: ", min=0,max=100, value = values)   })    output$restable <- renderTable({     myvals<- c(input$slider1, input$slider2, 100-input$slider1-input$slider2)     data.frame(Names=c("Slider 1", "Slider 2", "Slider 3"),Values=myvals)   }) } runApp(list(ui = ui, server = server)) 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!