桁区切り記号と小数点以下の桁数を指定して、数値をフォーマットします。これらを別々に行う方法は知っていますが、一緒に行う方法は知りません。
たとえば、小数部には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としてフラグが立てられていました)。
format
ではなくformatC
:
format(round(as.numeric(1000.64), 1), nsmall=1, big.mark=",") # 1,000.6
formatC(1000.64, format="f", big.mark=",", digits=1)
(何かが足りない場合はごめんなさい。)