web-dev-qa-db-ja.com

出力用の数値にコンマを追加します

xtableを介してデータフレームをHTMLに出力しています。テーブルのいくつかの列の数値にコンマを追加したいと思います。自分でペーストハックを行う前に、これを行うための組み込みの方法があるかどうかを確認すると思いました。

47
Dan

formatCを使用して列を変換することを検討してください

> formatC(1:10 * 100000, format="d", big.mark=",")
 [1] "100,000"   "200,000"   "300,000"   "400,000"   "500,000"   "600,000"  
 [7] "700,000"   "800,000"   "900,000"   "1,000,000"
63
Jonathan Chang

Jonathan Chang氏の回答に大変感謝しています。 formatCは非常に便利な関数のようです。そのため、私はprettyNumを見つけたドキュメンテーションを読む気になりました。これは、私が抱えていた同様の問題に対する非常にエレガントな解決策であることがわかりました。 _enrollment.summary_という名前のデータフレームの数値にカンマを追加するために実行した最小限の実行可能な例を次に示します。

xtable(prettyNum(enrollment.summary,big.mark=","))

14
woodrad

関数の引数 'format.args'を使用して試すこともできます

  ## Demonstration of additional formatC() arguments.
  print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))

ここから

https://cran.rstudio.com/web/packages/xtable/xtable.pdf

9
user3357059

これは遅い答えですが、次のようにscales::comma_formatを使用することもできます。

library(scales)
values <- c(1000000.789, 8888.23)
comma_format(digits = 12)(values)
## [1] "1,000,000.789" "8,888.230"

整数値のみの場合は、カンマを使用できます。

int_vals <- c(1234, 5678)
comma(int_vals)
## [1] "1,234" "5,678"
7
steveb

dplyrからの要約をフォーマットするために、ここにボイラープレートコードがあります:

df %>%
    summarise(mu=mean(big_values),
              min=min(big_values),
              max=max(big_values)) %>%
    mutate_each(funs(prettyNum(., big.mark=",")))
6
Paul