r语言 - 如何使数字在带有彩色条的格式化表中显示为美元金额



所以我正在尝试制作一个很酷的表格,其中数值将显示为彩色条,数字将显示为格式化表格中的文本。 我有整数的销售数字,我知道我可以使用currency()函数将它们更改为货币格式,而不会丢失它们作为数值。但是,一旦我添加了normalize_bar函数,数字就不再显示为货币格式。有人可以告诉我如何正确格式化吗?

prod$Sales<-currency(prod$Sales,digits=0L)
table<-formattable(prod, list(
area(col=Sales)~normalize_bar("green",0.2)
))

结果如下所示。

带条形的桌子

我知道销售数字的格式已更改为货币(请参阅下面没有区域的表格(。但是我怎样才能让数字正确显示呢? 不带条形的桌子

您可以编写自己的函数来格式化格式化表输出。在这里,我展示了一个示例,其中默认输出是带有和不带有规范化柱线的货币。

currencyout <- function(fun="currency"){
fun <- match.fun(fun)
formatter("span", x ~ fun(x, digits = 2))
}
currencybarout <- function(color = "violet", fun = "currency") {
fun <- match.fun(fun)
formatter("span", x ~ fun(x, digits = 2),
style = function(y) style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor(color),
width = percent(proportion(as.numeric(y), na.rm = TRUE))
)
)
}

您可以实现这一点,例如在数据框df中为第一列之后的所有列(我假设这是一个描述(

formattable(df,
list(area(col = 2:ncol(df)) ~ currencyout())
)
formattable(df,
list(area(col = 2:ncol(df)) ~ currencybarout())
)

最新更新