r - 如何在 DT 的左侧有一个像 Excel 中那样的行号?

标签 r shiny dt

我想在左边有一个始终显示 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 中

最佳答案

诀窍是定义一个callback JS() 函数来实现table.on behaviour一个动态行号计数器。

这是一个最小的可重现 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、...

关于r - 如何在 DT 的左侧有一个像 Excel 中那样的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54360602/

相关文章:

r - 在 Shiny 的 R 中输入向量然后使用它

r - Shiny - 在数据表中选择记录时如何突出显示传单 map 上的对象?

javascript - 使用回调选项选择新页面后,R DT 数据表不保留行索引/计数器列

r - Shiny - 在数据表中显示 URL

html - 如何减少 Shiny 的交互式 rmarkdown 利润?

r - 添加颜色渐变密度图R

regex - R:使用strsplit和perl REGEX语法提取大写字母和特殊字符

r - 如何使用具有列名和行名的值创建矩阵?

r - 垂直堆叠时间序列数据

r - 具有特征 "remove all-at-once"的 Shiny selectizeInput