2016-07-14 81 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

再次感謝您。現在我已經擁有了我需要的所有功能,可以根據需要進行構建你今天幫了我很多 –