如何在带彩色条的formattable表格中以美元金额显示数字

如何在带彩色条的formattable表格中以美元金额显示数字,r,format,currency,formattable,R,Format,Currency,Formattable,因此,我尝试制作一个很酷的表格,其中一个数值将显示为彩色条,数字将显示为formattable表格中的文本。 我的销售编号是整数,我知道我可以使用currency()函数将其更改为货币格式,而不会将其作为数值丢失。但是,一旦我在normalize_bar函数中添加了数字,这些数字就不再显示为货币格式。有人能告诉我如何正确格式化吗 prod$Sales<-currency(prod$Sales,digits=0L) table<-formattable(prod, list( area

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

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

prod$Sales您可以编写自己的函数来格式化formattable输出。这里,我展示了一个示例,其中默认输出是带有和不带规格化条的货币

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))
            )
  )
}

看起来使用
area
会导致格式丢失()-如果使用
Sales=normalize\u bar(“绿色“,.2)
,它会起作用,但这可能不是您需要的。使用v.2.0.1,我无法重现具有相同问题的其他示例:---希望我能提供更多帮助。。。
formattable(df,
            list(area(col = 2:ncol(df)) ~ currencyout())
                 )
formattable(df,
            list(area(col = 2:ncol(df)) ~ currencybarout())
                 )