带有 TableTools 和其他扩展的 R 闪亮数据表

Posted

技术标签:

【中文标题】带有 TableTools 和其他扩展的 R 闪亮数据表【英文标题】:R shiny dataTables with TableTools and other extensions 【发布时间】:2014-08-22 00:53:50 【问题描述】:

我正在尝试让 dataTables TableTools 和其他扩展与 Shiny 一起使用。我找到了一个解释如何做的网站:

https://gist.github.com/bearloga/8327428

但我无法让它工作。 addResourcePath 在我的脚本中不起作用,所以我从完整路径中获取。即使这样,似乎采购 DataTables 和扩展也没有效果,而且我只得到一个基本表,而没有 TableTools 或任何其他扩展工作。我知道 tags$script 条目正在工作,因为如果我将窗口设置得足够小,我会从下面的 html 中收到 Screen too small 警告。

有什么想法吗?

#### ui.R
suppressWarnings(suppressPackageStartupMessages(library("ggplot2", lib.loc="/opt/thirdparty/R/R-3.1.0/lib64/R/library")))
shinyUI = basicPage(
    h1('Diamonds DataTable with TableTools'),
    tagList(
    singleton(tags$head(tags$script(src='/opt/development/tools/webdev/shiny/datatables/DataTables-1.10.0/media/js/jquery.dataTables.js',type='text/javascript'))),
    singleton(tags$head(tags$script(src='/opt/development/tools/webdev/shiny/datatables/TableTools-2.2.1/js/dataTables.tableTools.js',type='text/javascript'))),
    singleton(tags$head(tags$script(src='/opt/development/tools/webdev/shiny/datatables/ColReorder-1.1.1/js/dataTables.colReorder.js',type='text/javascript'))),
    singleton(tags$head(tags$link(href='/opt/development/tools/webdev/shiny/datatables/TableTools-2.2.1/css/dataTables.tableTools.css',rel='stylesheet',type='text/css'))),
    singleton(tags$script(HTML("if (window.innerHeight < 400) alert('Screen too small');")))
    ),
    dataTableOutput("mytable")
)
########################################

### server.R
shinyServer(function(input, output) 
    output$mytable = renderDataTable(
        diamonds[,1:6]
    , options = list(
           "sDom" = 'T<"clear">lfrtip',
           "oTableTools" = list(
                        "sSwfPath" = "/opt/development/tools/webdev/shiny/datatables/TableTools-2.2.1/swf/copy_csv_xls.swf",
            "aButtons" = list(
                "copy",
                "print",
                list("sExtends" = "collection",
                     "sButtonText" = "Save",
                     "aButtons" = c("csv","xls")
                )
            )
        )
    )
        )
)
########################################

【问题讨论】:

【参考方案1】:

您需要链接到正确的库版本。可以在 http://cdnjs.com/libraries/datatables 找到指向 data.table 1.9.4 的链接。 http://cdnjs.com/libraries/datatables-tabletools 上指向 tabletools 2.1.5 的链接

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")
          )
        )
      )
    )
    )
  )
)

【讨论】:

虽然 CSV 和 Excel 都进入了 .csv 文件,但它现在会显示出来。 除了 CSV/Excel 位之外,一切正常。我现在转移到另一个功能 ColReorder 和 ColVis,与 dataTables 页面中的示例相比,这似乎行为不端:***.com/questions/24629902/…

以上是关于带有 TableTools 和其他扩展的 R 闪亮数据表的主要内容,如果未能解决你的问题,请参考以下文章

R 带有单独悬停下拉选择的闪亮组按钮

如何根据带有闪亮元素的 R Markdown 文档中的条件禁用按钮?

在带有 R 闪亮的 selectizeInput 中使用 html

带有 r 闪亮 textInput 的 jQuery 掩码插件

从闪亮的渲染数据表中保存

带有 DT 包的选项卡之间的 R 闪亮构建链接