在 R DT 中不受排序影响的行号
Line numbers that are not affected by sorting in R DT
R DT 包中默认显示行号。
dt <- DT::datatable(iris)
dt
但是,这个行号会根据排序的记录而变化。这是正确的举动。
但我需要不受排序影响的行号。是否可以使用 R DT 包执行此操作?
library(DT)
datatable(iris,
callback = JS(
"table.on('order.dt search.dt', function(){",
" table.column(0, {search:'applied', order:'applied'}).nodes()",
" .each(function(cell, i){",
" cell.innerHTML = i+1;",
" });",
"}).draw();")
)
我花了很多时间才弄清楚为什么 Index table 上的文档在 R 上不起作用,但事实证明他们使用 shorthand for table 作为 t.,这是一个基于 https://datatables.net/examples/api/counter_columns.html
的工作示例
更改了 JS 部分以允许导出为 csv
library(DT)
dt <- DT::datatable(iris,options = list(
columnDefs = list(list(searchable= FALSE,
orderable =FALSE,
targets= 0)),
order = list(1,"asc")),
callback = JS("
table.on('order.dt search.dt', function () {
table.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
cell.innerHTML = i+1;
table.cell(cell).invalidate('dom');
});
}).draw();
"))
dt
R DT 包中默认显示行号。
dt <- DT::datatable(iris)
dt
但是,这个行号会根据排序的记录而变化。这是正确的举动。 但我需要不受排序影响的行号。是否可以使用 R DT 包执行此操作?
library(DT)
datatable(iris,
callback = JS(
"table.on('order.dt search.dt', function(){",
" table.column(0, {search:'applied', order:'applied'}).nodes()",
" .each(function(cell, i){",
" cell.innerHTML = i+1;",
" });",
"}).draw();")
)
我花了很多时间才弄清楚为什么 Index table 上的文档在 R 上不起作用,但事实证明他们使用 shorthand for table 作为 t.,这是一个基于 https://datatables.net/examples/api/counter_columns.html
的工作示例更改了 JS 部分以允许导出为 csv
library(DT)
dt <- DT::datatable(iris,options = list(
columnDefs = list(list(searchable= FALSE,
orderable =FALSE,
targets= 0)),
order = list(1,"asc")),
callback = JS("
table.on('order.dt search.dt', function () {
table.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
cell.innerHTML = i+1;
table.cell(cell).invalidate('dom');
});
}).draw();
"))
dt