Как получить номер строки, как в Excel слева в DT? - PullRequest
0 голосов
/ 25 января 2019

Я хочу иметь номер строки слева, который всегда показывает 1, 2, 3, ... (так же, как номер строки в Excel), чтобы у пользователя был ссылочный номер строки, чтобы увидеть ранг заинтересованной строки после нажатия на столбец, чтобы изменить порядок таблицы.

РЕДАКТИРОВАТЬ:

library(DT)
n <- 20
set.seed(1)
df <- data.frame(customer_id = sample(10),
           amount_2016 = round(runif(n) * 16),
           amount_2017 = round(runif(n) * 17),
           amount_2018 = round(runif(n) * 18),
           amount_2019 = round(runif(n) * 19))

datatable(df)

The default

После нажатия на amount_2016, он показывает

order by amount_2016

Показывает 17, 14, 1, 2, 15, ..., и я хочу, чтобы оно оставалось равным 1, 2, 3, ..., как в Excel

1 Ответ

0 голосов
/ 25 января 2019

Хитрость в том, чтобы определить функцию callback JS(), которая реализует поведение table.on счетчика динамического номера строки.

Вот минимальный воспроизводимый пример RMarkdown:

---
title: "Untitled"
output: html_document
---

```{r}
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;
            } );
    } )"))
```

производство

enter image description here

Независимо от того, как вы упорядочите столбцы, номер строки всегда будет оставаться равным 1,2, 3, ...

...