2017-08-23 16 views
0

私はDataTable(myDataTable)を含むR Shiny Appで作業しています。そこで私は、以下の機能を提供し、3つのエクスポート機能を必要とする:CSV R Shiny DataTable:表示された行を確認

  • へのすべてのの行がCSV
  • 選択行をエクスポート

    1. 輸出はCSV
    2. 行を表示エクスポート

    1と2は簡単に解決されます。 1.すべてのエントリ:DataTableのデータモデルとして機能するサーバー側data.frameをエクスポートします。 2.選択されたエントリ:私はこのような選択された行にアクセス:

    observeEvent(input$myDataTable_rows_selected, { 
        rows <- sort(input$myDataTable_rows_selected) 
        # do something with rows 
    } 
    

    をしかし、どのように、私は(すなわちフィルタ)を表示する行を見つけることができますか?私はHTMLのアプローチを考えました。trの要素はすべてdiv#myDataTableの子ですが、shinyjsはそれに有用な機能を提供していません。

  • 答えて

    1

    フィルタリングされたデータにはinput$myDataTable_rows_allをそのまま使用できます。

    小さな例:

    library(shiny) 
    library(DT) 
    
    shinyApp(
        ui = fluidPage(
        dataTableOutput('myDataTable') 
    ), 
    
        server = function(input, output) {  
        observeEvent(input$myDataTable_rows_all, { 
         rows_filtered <- input$myDataTable_rows_all 
         rows_displayed <- rows_filtered[1:min(length(rows_filtered), input$myDataTable_state$length)] 
         # Download rows with your download fct. 
         print(rows_displayed) 
        }) 
    
        output$myDataTable = DT::renderDataTable({ 
         datatable(mtcars, options = list(stateSave = TRUE)) 
        }) 
        } 
    ) 
    
    +0

    は '_rows_all'のみ_filtered_行ない_all_行が含まれていることを指摘いただきありがとうございます。しかし、まだ_displayed_と_filtered_行の違いがあります(表にはいくつかの行が表示されています)。だから、私は自分のアプリのユーザーがそのように指示されなければならないと思う。 –

    +0

    ああ、私はそれを知っている。さて、表示される行の量を見ることができる状態変数で可能です。私は次の分にそれを作ったのかどうかはわかりません。夕方に編集します。 – BigDataScientist

    +0

    急いではなく、11時間か12時間で作業します;-) –

    関連する問題