2016-09-30 23 views
5

Mam aplikację, w której chcę pobrać dane użytkownika w pliku "ui" i użyć tej informacji, aby zaktualizować ramkę danych w pliku "serwer". Poniżej znajduje się uproszczona wersja tego, co kod wygląda następująco:R błyszczące; jak korzystać z wielu wejść z selectInput, aby przejść do opcji "select" w dplyr?

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

Powyższy kod działa, jeśli nie używać „= true wielokrotny” opcję selectInput, co oznacza, że ​​obiekt Dataframe2 wybiera tylko kolumnę, która odpowiada z pojedynczym wejściem, które wybrał użytkownik. Jednak nie wiem, w jaki sposób mogę zrobić to samo dla wielu wejść, gdy wybór może się różnić od tylko jednego elementu przekazanego z selectInput do 10 elementów w sumie.

Odpowiedz

6

Gdybym zrozumiał swoje pytanie poprawnie jest to przykład z wielokrotnego wyboru używając mtcars ramkę danych:

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



    }) 
+0

doskonały. To prawie dla mnie wyszło. –

Powiązane problemy