Номера строк, на которые не влияет сортировка в R DT - PullRequest
0 голосов
/ 18 июня 2020

Номера строк отображаются по умолчанию в пакетах R DT.

dt <- DT::datatable(iris)
dt

Однако этот номер строки будет изменяться в соответствии с записью путем сортировки. Это правильный ход. Но мне нужны номера строк, на которые сортировка не влияет. Можно ли это сделать с помощью пакета R DT?

Ответы [ 2 ]

3 голосов
/ 18 июня 2020
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();")
) 
2 голосов
/ 18 июня 2020

Мне потребовалось много времени, чтобы выяснить, почему документация по таблице Index не работает на R, но оказалось, что они использовали сокращение для 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
...