2017-01-11 4 views
1

私は、それが組み込みの検索を使用してフィルタリングされた後にデータテーブルをダウンロードしたいと思っています。どちらか、またはデータテーブルで使用されているのと同じ種類の検索を使用してデータフレームをフィルタリングし、データテーブルで検索にアクセスすることができます。R - Filtered Datatableをダウンロードする

+0

これまでに試したことはありますか? –

+0

@ PorkChop私は、データテーブルの内部構造にアクセスする方法を探してみましたが、自分自身の検索を作成しようとしましたが、データテーブル検索と同じくらいうまく機能しません。ドキュメントは、フィルタリングをサーバーに戻すための実際の方法を示していません。 – HSchmale

+0

あなたの試行でコードを投稿してください。 –

答えて

4

クライアント側の処理を使用する場合は、入力オブジェクトinput[["tablename_rows_all"]]を使用してこれを実行できます。 (_rows_allをデータ出力可能スロットの名前に付加)

_rows_allオブジェクトは、データフレームの行インデックスを返します。 downloadHandlerのデータを使用して、ダウンロードが開始されたときにデータフレームをサブセット化することができます。

library(shiny) 
library(DT) 

shinyApp(
    ui = 
    shinyUI(
     fluidPage(
     DT::dataTableOutput("dt"), 

     p("Notice that the 'rows_all' attribute grabs the row indices of the data."), 
     verbatimTextOutput("filtered_row"), 


     downloadButton(outputId = "download_filtered", 
         label = "Download Filtered Data") 
    ) 
    ), 

    server = 
    shinyServer(function(input, output, session){ 
     output$dt <- 
     DT::renderDataTable(
      datatable(mtcars, 
        filter = "top"), 
      server = FALSE 
     ) 

     output$filtered_row <- 
     renderPrint({ 
      input[["dt_rows_all"]] 
     }) 


     output$download_filtered <- 
     downloadHandler(
      filename = "Filtered Data.csv", 
      content = function(file){ 
      write.csv(mtcars[input[["dt_rows_all"]], ], 
         file) 
      } 
     ) 
    }) 
) 
+0

"d3tablefilter"を使用してフィルタリングされたデータテーブルをダウンロードしようとしています(複数の文字列をフィルタリングの制限付きのDataテーブルとは異なります)。ただし、ダウンロードするコードを複製することはできません。あなたは助けてもらえますか? https://github.com/ThomasSiegmund/D3TableFilter –

関連する問題