正确设置负货币值的格式,在美元符号前加上减号

时间:2019-04-11 00:22:30

标签: r formatting currency

我想正确格式化负货币值,在美元符号前加上减号。

以下代码将减号放在美元符号之后,即$ -100

library(scales)
dollar(-100)

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

2 个答案:

答案 0 :(得分:3)

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

library(scales)

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

[1] "$5!!"  "-$5!!"

答案 1 :(得分:1)

一种怪异的方法是,如果amount小于0,则在amount的绝对值上显式添加一个“-”符号。

library(scales)
amount <- c(100, -200, -50)
ifelse(amount < 0, paste0("-", dollar(abs(amount))), dollar(amount))
#[1] "$100"  "-$200" "-$50"