将 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
管道运算符保持不变
我正在使用 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
管道运算符保持不变