Question

Je suis sortie un dataframe html via xtable. Je veux ajouter des virgules pour nombres dans une colonne de couple de la table. Je me suis dit avant moi mon hack pâte je vérifier s'il est construit de manière à le faire.

Était-ce utile?

La solution

Vous voudrez peut-être envisager de transformer la colonne en utilisant 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"

Autres conseils

Un grand merci à Jonathan Chang pour sa réponse. formatC semble être une fonction extrêmement utile. Cela m'a inspiré de lire la documentation pour elle, où je trouvai prettyNum, qui se révèle être une solution assez élégante à un problème similaire que je faisais. Voici un exemple viable minimum de ce que je faisais pour ajouter des virgules pour les numéros dans une trame de données nommée enrollment.summary.

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

Vous pouvez également essayer d'utiliser l'argument auj 'format.args'

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

d'ici

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

Voici une réponse tardive, mais vous pouvez également utiliser scales::comma_format comme suit:

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

Pour les valeurs entières juste, vous pouvez simplement utiliser des virgules:

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

pour mettre en forme des résumés de dplyr, voici le code passe-partout:

df %>%
    summarise(mu=mean(big_values),
              min=min(big_values),
              max=max(big_values)) %>%
    mutate_each(funs(prettyNum(., big.mark=",")))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top