首页 文章

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

提问于
浏览
9

我有一个应用程序,其中我希望在“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))
                                 }

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

1 回答

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

相关问题