web-dev-qa-db-fra.com

Format du nombre en R avec séparateur de milliers de virgules et décimales spécifiées

Je voudrais formater les nombres avec le séparateur de milliers et spécifier le nombre de décimales. Je sais comment les faire séparément, mais pas ensemble.

Par exemple, j'utilise format per this pour les décimales:

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

Et pour le séparateur de milliers, formatC:

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

Cependant, ceux-ci ne fonctionnent pas bien ensemble:

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)

Comment puis-je avoir 1,000.6?

Edit: Cela diffère de cette question qui pose des questions sur le formatage 3.14 en 3,14 (a été signalé comme dup possible).

22
Max Ghenis

format pas 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)

(désolé si je manque quelque chose.)

10
Greg Minshall