2013-09-09 2 views
8

Я нашел some information о том, как изменить value в виде sliderInput с реактивной экспрессией в пределах siderbarPanel. Но вместо value, я хотел бы изменить min и max слайдера с numericInput. В сценарии this для server.R говорится, что для ползунков можно изменить только label и value. Есть ли другая возможность изменить минимальные/максимальные значения sliderInput с реактивной экспрессией?Интерактивных/Реактивная смена мин/макс значение sliderInput

Вот 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) 

}) 

ответ

10

Я думаю, что это лучше всего достигается за счет использования динамических функций пользовательского интерфейса с помощью блестящей renderUI() и uiOutput() , Попробуйте следующий пример:

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) 
    }) 

}) 
+0

Благодаря @David, ползунки работать! Но у меня проблемы с получением выходного значения из ползунка. Я попробовал 'input $ slider', но кажется, что' slider' не возвращает никаких значений. Есть идеи? –

+1

Только что понял, что мне нужно использовать 'input $ inSlider'. Извините за беспокойство. –

+0

Я часто пишу так: uiOutput ("outputSlider") и sliderInput ("inputSlider" и т. Д.), Чтобы избежать путаницы ... – PatrickT