R闪亮;如何使用selectInput中的多个输入传递给选择' dplyr中的选项?

时间:2016-09-30 18:38:26

标签: r shiny dplyr

我有一个应用程序,其中我希望用户输入" ui"文件并使用该信息更新"服务器"中的数据帧。文件。以下是代码的简化版本:

Dataframe <- readRDS(Dataframe.rds)
Table <- readRDS(Table.rds)    

ui <- fluidPage(
     selectInput("Location","Location",
              unique(as.character(Table$Locations)), multiple = TRUE)
                )

server <- function(input,output) {
 Dataframe2 <- Dataframe %>% select(get(input$Location))
                                 }

如果我不使用&#34; multiple = TRUE&#34;上面的代码有效。 selectInput的选项,表示Dataframe2对象仅选择与用户选择的单个输入匹配的列。但是,我不知道如何为多个输入做同样的事情,当选择可能从selectInput传递的最多1个项目到总共10个项目。

1 个答案:

答案 0 :(得分:9)

如果我理解你的问题,这是一个使用mtcars数据框进行多项选择的例子:

ui.R

    library(shiny)
    data(mtcars)

    shinyUI(fluidPage(


      titlePanel("MTCARS"),
      selectInput("Columns","Columns",
                  names(mtcars), multiple = TRUE),
      verbatimTextOutput("dfStr")


    ))

server.R

    library(shiny)
    library(dplyr)
    data(mtcars)

    shinyServer(function(input, output) {


                    Dataframe2 <- reactive({
                            mtcars[,input$Columns] 
                    })
                    output$dfStr <- renderPrint({
                            str(Dataframe2())
                    })



    })