在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"
答案 0 :(得分: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
可能根本不应该允许科学记数法。
答案 1 :(得分: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
库。