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 に答える