2

在 ggplot 中使用新的 Dollar_format() 语法,我得到了意想不到的行为。是否(还有)另一个论点可以让 sci-not 消失?

x <- seq(0,100000,10000)
[1] 0e+00 1e+04 2e+04 3e+04 4e+04 5e+04 6e+04 7e+04 8e+04 9e+04 1e+05
dollar(x)
[1] "$0e+00" "$1e+04" "$2e+04" "$3e+04" "$4e+04" "$5e+04" "$6e+04" "$7e+04" "$8e+04" "$9e+04" "$1e+05"
4

2 回答 2

3

请注意,该dollar功能现在在scales包中。scipen您可以使用该选项阻止它切换到科学记数法。请注意,这将影响您的所有输出,而不仅仅是这种格式。

> options(scipen=5)
> dollar(x)
 [1] "$0"       "$10,000"  "$20,000"  "$30,000"  "$40,000"  "$50,000"  "$60,000" 
 [8] "$70,000"  "$80,000"  "$90,000"  "$100,000"

不过,正如@joran 所说,dollar可能根本不应该允许科学记数法。

于 2012-04-17T22:28:22.670 回答
1

根据我的评论,这样的事情应该有效:

dollar1 <- function (x) 
{
  x <- round_any(x, 0.01)
  nsmall <- if (max(x, na.rm = TRUE) < 100) 
    2
  else 0
  stringr::str_c("$", format(x, nsmall = nsmall, trim = TRUE, big.mark = ",",scientific = FALSE))
}

如果您不想str_c直接使用调用::,则需要确保stringr已加载库。

于 2012-04-17T22:28:43.670 回答