在美元符号前使用减号正确格式化负货币值

Mar*_*eal 5 formatting currency r

我想在美元符号之前用减号正确格式化负货币值。

下面的代码在美元符号后面加减号,即$-100

library(scales)
dollar(-100)
Run Code Online (Sandbox Code Playgroud)

您将如何将其更改为所需的输出,即 -$100?我在文档https://rdrr.io/cran/scales/man/dollar_format.html 中没有看到明显的选项

H 1*_*H 1 4

由于 的输出dollar()是字符向量,您可以使用chartr结果定义一个新函数来有条件地交换字符,并用于...将额外的参数传递给原始函数。

library(scales)

newdollar <- function(x, ...) ifelse(x < 0, chartr("$-", "-$", dollar(x, ...)), dollar(x, ...))
newdollar(c(5, -5), suffix = "!!" )

[1] "$5!!"  "-$5!!"
Run Code Online (Sandbox Code Playgroud)