2016-07-14 110 views
1

在我的R闪亮sliderInput我想限制给定的滑块的输入范围具有较大的最大值。 例如,假设输入必须在间隔[1:10]内。R闪亮的滑动输入范围受限制

当然,我现在可以在sliderInput选项中定义min = 1,max = 10,但是我只会得到一个带有此间隔值的滑块。

我的目标是在[1:50]中看到一个带有值(例如)的滑块,但用户只能在间隔[1:10]中移动此滑块。这会让我的应用程序更好。 这可能吗?

回答

2

从以前的问题,构建可以使用最小值,这里滑块1被限制为80 max和滑块2仅限于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)) 
+1

再次感谢您。现在我已经拥有了我需要的所有功能,可以根据需要进行构建你今天帮了我很多 –