2014-04-08 11 views
7

na to pytanie, używam samouczek przykład R Shiny znaleźć tutaj:Stosować TableTools dla DataTables w R Shiny dla renderDataTable

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

Uruchamianie kodu na tym kursie czyni aplikację pod następującym adresem URL

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

Co chciałbym wiedzieć, jest, raz, że tabela danych jest renderowany, możemy wyszukać go za pomocą funkcji wbudowanych w renderDataTable() funkcji w R lśniące, bu • Czy możliwe jest pobranie danych, które zostały przefiltrowane, za pomocą funkcji renderDataTable()?

Na przykład, jeśli w pasku wyszukiwania tabeli danych wpisz "Very Good", wyświetlane są tylko rekordy w polu "cut", które brzmią "Very Good". Jak mogę pobrać ten zestaw danych?

Jak mogę wywołać przyciski TableTools.js do kopiowania, drukowania, zapisywania itp. W tym kodzie?

Dziękujemy!

+0

Jestem również zainteresowany w uzyskaniu tej pracy. Widziałem to w następującym adresie URL, ale nie udało mi się go uruchomić: https://gist.github.com/bearloga/8327428 – 719016

Odpowiedz

3

Musisz podać poprawne wersje bibliotek. Linki do data.table 1.9.4 można znaleźć pod adresem http://cdnjs.com/libraries/datatables. Linki do tabletools 2.1.5 na 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

Fantastyczne! Co powiesz na eksport w formacie .RData? – mbh86

Powiązane problemy