默认折叠 DT table 列

Collapse DT table columns by default

根据以下文档 (https://rstudio.github.io/DT/extensions.html), 下面的代码应该默认折叠第一列和第二列 (0,1),但在尝试时它默认显示所有列。

我们可以默认只显示 2 列吗?

datatable(
        iris2, rownames = FALSE,
        extensions = 'Buttons', options = list(
          dom = 'Bfrtip',
          buttons = list(list(extend = 'colvis', columns = c(2, 3, 4)))
        )
      )

您必须使用 columnDefs 隐藏列:

datatable(
  iris, rownames = FALSE,
  extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = list(list(extend = 'colvis', columns = c(2, 3, 4))),
    columnDefs = list(
      list(targets = c(2,3,4), visible = FALSE)
    )
  )
)

编辑

在您的评论中,您要求“显示全部”功能(您应该打开一个新问题,但是很好)。这是我找到的方法:

datatable(
  iris, rownames = FALSE,
  extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = list(
      list(
        extend = 'colvis', 
        columns = c(2, 3, 4)
      ),
      list(
        extend = 'colvisGroup', 
        text = "Show all",
        show = ":hidden"
      ),
      list(
        extend = 'colvisGroup', 
        text = "Show none",
        hide = ":visible"
      )
    ),
    columnDefs = list(
      list(targets = c(2,3,4), visible = FALSE)
    )
  )
)