2014-04-08 6 views
7

Für diese Frage bin ich der R Shiny Tutorial am Beispiel hier:Verwenden TableTools für Tables in R Shiny für renderDataTable

http://rstudio.github.io/shiny/tutorial/#datatables

Ausführen des Codes auf diesem Tutorial macht die Anwendung unter der folgenden URL

http://glimmer.rstudio.com/yihui/12_datatables/

Was ich möchte, ist wissen, wenn die Datentabelle wiedergegeben wird, können wir es, die Funktionalität in die renderDataTable() Funktion in R Shiny gebaut Suche verwenden, bu Ist es möglich, die gefilterten Daten mit der Funktion renderDataTable() herunterzuladen?

Zum Beispiel, wenn in der Datentabelle Suchleiste ich, "sehr gut", nur die Datensätze im Feld "Schnitt", die "sehr gut" lesen, angezeigt werden. Wie würde ich dann diesen Datensatz herunterladen?

Wie würde ich die Schaltflächen TableTools.js kopieren, drucken, speichern usw. in diesen Code einfügen?

Vielen Dank!

+0

Ich bin auch daran interessiert, diese zu arbeiten. Ich habe es in der folgenden URL erwähnt, aber es nicht geschafft, es funktioniert zu bekommen: https://gist.github.com/bearloga/8327428 – 719016

Antwort

3

Sie müssen mit den richtigen Bibliotheksversionen verknüpfen. Links zu data.table 1.9.4 finden Sie unter http://cdnjs.com/libraries/datatables. Links zu tabletools 2.1.5 bei http://cdnjs.com/libraries/datatables-tabletools

library(shiny) 
library(ggplot2) 
runApp(
    list(ui = basicPage(
    h1('Diamonds DataTable with TableTools'), 
    tagList(
     singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/jquery.dataTables.min.js',type='text/javascript'))), 
     singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/TableTools.min.js',type='text/javascript'))), 
     singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/ZeroClipboard.min.js',type='text/javascript'))), 
     singleton(tags$head(tags$link(href='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/css/TableTools.min.css',rel='stylesheet',type='text/css'))), 
     singleton(tags$script(HTML("if (window.innerHeight < 400) alert('Screen too small');"))) 
    ), 
    dataTableOutput("mytable") 
) 
    ,server = function(input, output) { 
    output$mytable = renderDataTable({ 
     diamonds[,1:6] 
    }, options = list(
     "sDom" = 'T<"clear">lfrtip', 
     "oTableTools" = list(
     "sSwfPath" = "//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf", 
     "aButtons" = list(
      "copy", 
      "print", 
      list("sExtends" = "collection", 
       "sButtonText" = "Save", 
       "aButtons" = c("csv","xls") 
     ) 
     ) 
    ) 
    ) 
    ) 
    }) 
) 

enter image description here

+0

Fantastisch! Wie wäre es mit dem Export in .RData Format? – mbh86