2017-03-01 67 views
0
ui <- fluidPage(
    sliderInput("obs", "Number of observations:", 
       min = 0, max = 1000, value = 500 
), 
    plotOutput("distPlot") 
) 

# Server logic 
server <- function(input, output) { 
    output$distPlot <- renderPlot({ 
    hist(rnorm(input$obs)) 
    }) 
} 

# Complete app with UI and server components 
shinyApp(ui, server) 

我有一个简单的应用程序与sliderInput用户可以切换和选择观察的数量。有没有办法对此进行修改,以便在此滑块功能之上,用户可以将他/她所需数量的观察值输入到一个框中,并且该输入将反映在生成的直方图中?我希望用户能够灵活地拥有滑块,并且能够快速输入精确值,而无需一直依赖滑块。如何修改shiny中的sliderInput以便用户可以直接输入值?

回答

0

是这样的?

ui <- fluidPage(
      numericInput("obs_numeric", "Number of observations", min = 0, max = 500, value = 500), 
      sliderInput("obs", "Number of observations:", 
         min = 0, max = 1000, value = 500 
      ), 
      plotOutput("distPlot") 
    ) 

    # Server logic 
    server <- function(input, output, session) { 
      output$distPlot <- renderPlot({ 
        hist(rnorm(input$obs)) 
      }) 
      observeEvent(input$obs, { 
        updateNumericInput(session, "obs_numeric", value = input$obs) 
      }) 
      observeEvent(input$obs_numeric, { 
        updateSliderInput(session, "obs", 
             value = input$obs_numeric) 
      }) 
    } 

    # Complete app with UI and server components 
    shinyApp(ui, server) 
相关问题