【发布时间】:2019-01-25 14:44:51
【问题描述】:
在 Shiny 中,我正在渲染一个数据表。
我正在阅读 DT 包的选项,我发现要做到这一点,我需要了解 Javascript。
https://rstudio.github.io/DT/options.html
m = as.data.frame(matrix(round(rnorm(100, 1e5, 1e6)), 20))
datatable(m, options = list(
rowCallback = JS(
"function(row, data) {",
"var num = '$' + data[3].toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');",
"$('td:eq(3)', row).html(num);",
"}")
), callback = JS("table.order([3, 'asc']).draw();"))
我对JS不太了解,所以问了这个问题。我现在最大的数字是:22381,最低的是 0。
我想将 22381 显示为 22,381。如果可能:22381 作为 S/.22,381。
这就是我的 DataTable 现在呈现的方式,我正在使用选项来订购(描述)收入。
output$products <- renderDataTable(products_ss(),
options = list(
order = list(list(2, 'desc'))
))
更新一:如何申请formatCurrency?
这样应用会报错:
您指定了列:itemRevenue,但数据的列名是
output$productos_sams <- renderDataTable(productos_samsung() %>%
formatCurrency(c('itemRevenue'), currency = ' S/.',
interval = 3, mark = ',', before = FALSE),
options = list(
order = list(list(2, 'desc'))
))
我已更改您的答案以匹配我的专栏名称。
【问题讨论】:
-
没有 Javascript 的选项可能会将列转换为使用
scales::comma()> scales::comma(22381)[1] "22,381"格式化的字符