R闪亮; 如何使用selectInput中的多个输入传递到dplyr中的"select"选项?

Naj*_*j S 10 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))
                                 }
Run Code Online (Sandbox Code Playgroud)

如果我没有对selectInput使用"multiple = TRUE"选项,则上述代码有效,这意味着Dataframe2对象仅选择与用户选择的单个输入匹配的列.但是,我不知道如何为多个输入做同样的事情,当选择可能从selectInput传递的最多1个项目到总共10个项目.

Val*_*vić 10

如果我正确理解了您的问题,这是使用mtcars数据框进行多项选择的示例:

ui.R

    library(shiny)
    data(mtcars)

    shinyUI(fluidPage(


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


    ))
Run Code Online (Sandbox Code Playgroud)

server.R

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

    shinyServer(function(input, output) {


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



    })
Run Code Online (Sandbox Code Playgroud)