R:你如何在Shiny中初始化数据表FixedColumns javascript?

Ali*_*r W 6 javascript r datatables shiny

我正在尝试构建一个使用数据表FixedColumns插件的闪亮应用程序:

https://datatables.net/extensions/fixedcolumns/

我正在使用的数据集将有大约100列,我想修复前五列,并允许用户滚动其余列.从示例看起来我需要使用这个javascript:

https://datatables.net/release-datatables/extensions/FixedColumns/examples/two_columns.html

$(document).ready(function() {
    var table = $('#example').DataTable( {
        scrollY:        "300px",
        scrollX:        true,
        scrollCollapse: true,
        paging:         false
    } );
    new $.fn.dataTable.FixedColumns( table, {
        leftColumns: 2
    } );
} );
Run Code Online (Sandbox Code Playgroud)

我不知道javascript,但在过去我已经能够使用I()来插入javascript选项.这次虽然看起来我需要做别的事情.我已经尝试了下面的代码并得到消息:"错误:'选项'必须是一个命名列表'.

library(shiny)
library(ggplot2)
data(diamonds)
hw <- diamonds

runApp(
  list(ui=(
    fluidPage(
      tabsetPanel(
        id = 'dataset',
        tabPanel('hw', dataTableOutput('mytable1'))
      ))),

    server = (function(input, output, session) {
      output$mytable1 <- renderDataTable(
        head(hw, 50), 
        options = list(scrollY = '300px',
                       scrollX = TRUE,
                       scrollCollapse = TRUE,
                       paging = FALSE,

                       I("new $.fn.dataTable.FixedColumns( table, {
                        leftColumns: 5
                        } );")
                       ))


    })

  ))
Run Code Online (Sandbox Code Playgroud)

小智 -1

list(tags$head(tags$script('type = "text/javascript"', '
        $(document).ready( function () {
            var table = $("#example").DataTable( {
                "scrollY": "300px",
                "scrollX": "100%",
                "scrollCollapse": true,
                "paging": false
            } );
            new $.fn.dataTable.FixedColumns( table );
        } );
')))
Run Code Online (Sandbox Code Playgroud)