我尝试应用数据表选项和扩展来绘制表。如果遵循参考,它可以工作,但当我组合/应用多个扩展时,ColVis 不起作用。有什么想法吗?
df %>%
datatable(., caption="Table 3.4.1 : Partial Matching Teams' Name.",
extensions=list('ColReorder','ColVis', list(FixedColumns=list(leftColumns=2))),
options=list(autoWidth=TRUE,
dom='C<"clear">lfrtip',
colVis=list(exclude=c(0, 1),
activate='mouseover'),
colReorder=list(realtime=TRUE),
scrollX=TRUE,
scrollCollapse=TRUE))
根据DT手册与某些扩展相关的选项需要放置在命名列表中。如果在
options
属性中指定选项,则必须分配 NULL
。
datatable(.,extensions=list("ColReorder" = NULL,
"ColVis" = NULL,
"FixedColumns"=list(leftColumns=2))
由于
dom
属性不足而生成另一个错误。有关更多信息请参阅此链接。 dom
中的每个字母都与表输出的指定元素链接。与 extension
关联的大写字母和与表格元素关联的小写字母 (R
- ColReorder、C
- ColVis、T
- TableTools、t
- table ,i
- 表 info 等)。如果示例中缺少“R”,则 ColReorder 无法工作。将以下正确代码与添加的 TableTools 放在一起:
iris %>%
datatable(
extensions = list("ColReorder" = NULL,
"ColVis" = NULL,
"TableTools" = NULL,
"FixedColumns" = list(leftColumns=2)),
options = list(autoWidth=TRUE,
oColReorder = list(realtime=TRUE),
oColVis = list(exclude=c(0, 1), activate='mouseover'),
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")))),
dom = 'CRTrilftp',
scrollX = TRUE,
scrollCollapse = TRUE))
升级! 由于 DT 已升级(v0.1.56),扩展
TableTools
和 ColVis
不再可用。根据新的教程,上述扩展可以通过buttons
扩展实现。新版本的包更加一致,添加扩展比以前更容易:
DT:::datatable(
iris,
escape=F,
filter = "top",
rownames= F,
extensions = list("ColReorder" = NULL,
"Buttons" = NULL,
"FixedColumns" = list(leftColumns=1)),
options = list(
dom = 'BRrltpi',
autoWidth=TRUE,
lengthMenu = list(c(10, 50, -1), c('10', '50', 'All')),
ColReorder = TRUE,
buttons =
list(
'copy',
'print',
list(
extend = 'collection',
buttons = c('csv', 'excel', 'pdf'),
text = 'Download'
),
I('colvis')
)
)
)