Respuestas:
Puede probar con formato o prettyNum, pero ambas funciones devuelven un vector de caracteres. Solo lo usaría para imprimir.
> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
EDITAR: Como dice Michael Chirico en el comentario:
Tenga en cuenta que estos tienen el efecto secundario de rellenar las cadenas impresas con espacios en blanco, por ejemplo:
> prettyNum(c(123,1234),big.mark=",")
[1] " 123" "1,234"
Añadir trim=TRUEa formato preserve.width="none"a prettyNumprevenir esto:
> prettyNum(c(123,1234),big.mark=",", preserve.width="none")
[1] "123" "1,234"
> format(c(123,1234),big.mark=",", trim=TRUE)
[1] "123" "1,234"
prettyNum(c(123,1234),big.mark=","):; da " 123" "1,234". añadir trim=Ta formato preserve.width="none"para prettyNumprevenir esto.
format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)da "" 12,345,678.0000 "" 0.0012 "para que se pueda ver lo suficiente. es decir, el formato de los lugares no se realiza elemento por elemento. Me sorprendió, así que quería compartir esto.
scientificcuál está escondido en el pajar de argumentos format. ¡Gracias!
Ver ?format:
> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000"
>
Las otras respuestas publicadas obviamente funcionan, pero siempre he usado
library(scales)
comma_format()(1000000)
comma_formatno manejan números reales, pero ahora se puede hacer lo siguiente: scales::comma_format(digits = 12)(1000000.789)que se traduce en lo siguiente: "1,000,000.789".
Creo que el comentario de Joe a MatthewR ofrece la mejor respuesta y debe destacarse:
A partir de septiembre de 2018, el scalespaquete (parte del Tidyverse) hace exactamente esto:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
El scalespaquete parece funcionar muy bien ggplot2, lo que permite un control preciso de cómo se muestran los números en gráficos y gráficos.