从Shiny中的下拉框访问动态数据

时间:2017-06-28 06:46:33

标签: rstudio shinydashboard

我正在创建一个闪亮的仪表板,我需要根据下拉框中的选项动态更新信息。

我的问题是1.可以这样做,如果是这样的话:怎么做?

我创建了我的下拉菜单,工作正常,从那里我想要的是“如果选择插座xyz,更新具有独特信息的图表”

到目前为止的代码:

output$Box1 = renderUI(
selectInput("Outlets",
"Select an Outlet",
 c("Start Typing Outlet 
Name",as.character(unique(outlets$Outlets))),
"selectoutlet"))

一旦选择了插座,我希望我的R脚本中的数据仅针对该插座进行更新。

1 个答案:

答案 0 :(得分:0)

由于您没有提供可重现的示例,以下是包含mtcars数据集的代码:

 library(shiny)
library(dplyr)
library(ggplot2)

ui= fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput(inputId= "cyl", label= "cyl", 
                     choices= unique(mtcars$cyl), 
                     selected= sort(unique(mtcars$cyl))[1],
                     multiple=F)
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

server= function(input, output,session) {

  df_filtered <-reactive({
    data <- mtcars %>%  {if (is.null(input$cyl)) . else filter(., cyl %in% input$cyl)} # here is the reactive dataset which You can further use it in table or in the plot
    print(data)
    data
  }) 

  output$plot <- renderPlot({
    ggplot(data = df_filtered(), aes(x=cyl,y=mpg)) + geom_point(size=5) # as You can see i have used data = df_filtered()
})
}

shinyApp(ui, server)

查看代码中的注释,以便更好地了解其工作原理。