2017-05-31 9 views
0

データフレームを操作するためのドロップダウンメニューを追加しようとしています。光沢のあるR - ドロップダウンメニューから選択したテーブルの出力

例えば、

は私のDFが列を持っていると仮定 - A1、A2、A3、B1、B2、C1、C2、C3

と私は選択肢=リスト( "すべて"、 "A" でドロップダウンメニューを追加したいです、 "b"、 "c")を使用して、すべての列、aで始まる列またはbで始まる列などを含むように表をフィルタリングします。

これについてどうすればよいかわかりません。選択肢が選択されたときに呼び出されるか、選択肢に基づいて操作されたdfを持つことができる新しいdfを作成するかのいずれかにオープンします。ここで

は、いくつかのサンプルコード(ない私の実際のコード)である:

library(shiny) 
shinyUI(fluidPage(
    titlePanel("x"), 
    sidebarLayout(
    sidebarPanel(
     selectInput(inputId = "x", 
        choices = list("All", "a", "b", "c")) 
    ), 
    mainPanel(
     dataTableOutput('x') 
    ) 
) 
)) 


#dfa <- data.frame(select(df, starts_with("a"))) 

#dfb <- data.frame(select(df, starts_with("b"))) 

#dfc <- data.frame(select(df, starts_with("c"))) 

shinyServer(function(input, output) { 
    output$x = renderDataTable({ 

    ????? 

    }) 
}) 

答えて

1

あなたが反応を使用することができます。

shinyServer(function(input, output) { 

    reactive_df <- reactive({ 
     if(input$x=="All") 
     return df 
     else 
     return(select(df, starts_with(input$x))) 
    } 

    output$x <- renderDataTable(reactive_df()) 

} 
+0

は、迅速な応答をありがとう!非常に役立ちます。 – Jason

+0

Jasonがうまくいけば回答を受け入れてください – Mark

関連する問題