将 R 数据 table (DT) 列格式化为货币以及 millions/thousands

Formatting a R data table (DT) column into currency as well as millions/thousands

我正在使用 DT 包的渲染函数来显示数据 table。我想将一些列显示为美元金额,但也以百万为单位。使用下面给出的代码,我能够将预期的第 3 列到第 5 列转换为美元金额货币。

有没有办法同时添加另一种格式,以便我们将值视为例如101 万美元而不是 1,012,310.23 美元?

output$my.summary<-DT::renderDataTable({
    DT::datatable(my.summary()) %>% 
        formatCurrency(c(3:5),digits=2)
  })

my.summary 只是来自反应组件的数据table,我想尽可能多地重用对象而不是修改源中的任何内容(例如,除以 1e-06 并添加M 最后)

非常感谢我可以在上面的块中使用的简单解决方案!谢谢!

这个问题已经回答了:Format number into K(thousand), M(million) in Shiny DataTables

因此,使用:

formatThousands <- JS(
  "function(data) {",
  "return '$' + (data / 1000).toFixed(1) + 'K'",
  "}")

mtcars %>% 
  datatable(options = list(
    columnDefs = list(list(
      targets = c(3), render = formatThousands
    ))
  ))

或者没有 JavaScript 你可以试试这个:

mtcars %>% 
  mutate(disp = disp/1000) %>% 
  DT::datatable() %>% 
  DT::formatString(c(3), prefix = "$", suffix = "K")

您没有通过引用编辑任何内容,原始数据集通过 magrittr 管道运算符保持不变