r - 将 R 数据表 (DT) 列格式化为货币以及百万/千
问题描述
我正在使用 DT 包的渲染函数来显示数据表。我想将一些列显示为美元金额,但也以百万为单位。使用下面给出的代码,我可以将预期的第 3 列到第 5 列转换为美元金额货币。
有没有办法添加另一种格式,以便我们将值视为 $1.01 M 而不是 $1,012,310.23 ?
output$my.summary<-DT::renderDataTable({
DT::datatable(my.summary()) %>%
formatCurrency(c(3:5),digits=2)
})
my.summary
只是来自反应组件的数据表,我想尽可能重用对象而不是修改源中的任何内容(例如,除以 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
管道运算符保持不变
推荐阅读
- electron - 将电子更新到 6.0.0 后 html2canvas 的大小问题
- google-cloud-platform - 防止 GCP 中的 IAM 升级
- nativescript - 升级到 nativescript 6 后出现 global.process.platform 未定义错误
- sql - 唯一索引的分区列必须是索引键错误的子集
- mysql - MySQL:在单个语句中选择同一字段的奇数和偶数
- python - 如何在列表中搜索字符串并输出包含该字符串的所有值?
- java - 如何在Java中转换二维整数数组中的有序对数组
- c++ - 屏幕分辨率高于 1920x1080 时捕获视频
- python - 给定熊猫数据框突出显示一列
- javascript - 使用 jsonp 获取数据