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

问题描述 投票:3回答:2

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

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

library(scales)
dollar(-100)

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

r formatting currency
2个回答
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
投票

一种hacky方法是,如果amount小于0,则明确地向amount的绝对值添加“ - ”符号。

library(scales)
amount <- c(100, -200, -50)
ifelse(amount < 0, paste0("-", dollar(abs(amount))), dollar(amount))
#[1] "$100"  "-$200" "-$50" 
© www.soinside.com 2019 - 2024. All rights reserved.