J'ai une application dans laquelle je cherche à saisir les entrées des utilisateurs dans le fichier "ui" et à utiliser ces informations pour mettre à jour une trame de données dans le fichier "serveur". Voici une version simplifiée de l'apparence du code:
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))
}
Le code ci-dessus fonctionne si je n'utilise pas l'option "multiple = TRUE" pour selectInput, ce qui signifie que l'objet Dataframe2 ne sélectionne que la colonne qui correspond à l'entrée unique que l'utilisateur a choisie. Cependant, je ne sais pas comment je peux faire la même chose pour plusieurs entrées, lorsque les choix peuvent varier d'un seul élément transmis de selectInput à 10 éléments au total.
Si j'ai bien compris votre question, voici un exemple de sélection multiple utilisant le cadre de données 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())
})
})