2016-09-30 4 views
5

私は "ui"ファイルでユーザー入力を受け取り、その情報を使って "server"ファイル内のデータフレームを更新するアプリを持っています。私はDataframe2オブジェクトのみが一致する列を選択することを意味し、selectInputための「複数= TRUE」オプションを使用しない場合は、上記のコードが動作するR光沢; selectInputから複数の入力を使用してdplyrの 'select'オプションに渡す方法は?

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から渡される項目が1つだけで、合計で10項目まで選択肢が異なる場合、複数の入力に対して同じことをやり遂げる方法がわかりません。

答えて

6

私が正しくあなたの質問を理解している場合、これは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()) 
        }) 



    }) 
+0

パーフェクト。それは私のためのトリックでした。 –

関連する問題