我有一个应用程序,其中我希望用户输入" 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个项目。
答案 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())
})
})