web-dev-qa-db-ja.com

コンマ3桁区切り記号と指定された小数部の両方を含むRの数値の書式設定

桁区切り記号と小数点以下の桁数を指定して、数値をフォーマットします。これらを別々に行う方法は知っていますが、一緒に行う方法は知りません。

たとえば、小数部にはformat per this を使用します。

FormatDecimal <- function(x, k) {
  return(format(round(as.numeric(x), k), nsmall=k))
}
FormatDecimal(1000.64, 1)  # 1000.6

そして、千単位の区切りの場合、formatC

formatC(1000.64, big.mark=",")  # 1,001

しかし、これらは一緒にうまく再生されません:

formatC(FormatDecimal(1000.64, 1), big.mark=",")  
# 1000.6, since no longer numeric
formatC(round(as.numeric(1000.64), 1), nsmall=1, big.mark=",")
# Error: unused argument (nsmall=1)

どうすれば入手することができますか 1,000.6

編集:これは この質問 とは異なり、3.14を3.14としてフォーマットすることを要求します(可能なdupとしてフラグが立てられていました)。

22
Max Ghenis

formatではなくformatC

format(round(as.numeric(1000.64), 1), nsmall=1, big.mark=",") # 1,000.6

56
Max Ghenis
formatC(1000.64, format="f", big.mark=",", digits=1)

(何かが足りない場合はごめんなさい。)

10
Greg Minshall