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=","):; da " 123" "1,234". añadir trim=Ta formato preserve.width="none"para prettyNumprevenir esto.
MichaelChirico
@MichaelChirico Gracias por la información adicional. Lo agregué a la respuesta.
Joris Meys
Tenga en cuenta que si también está configurando dígitos para lugares decimales, si tiene un vector, esto puede salir mal si los números son bastante diferentes. De la ayuda "Los vectores numéricos se codifican con la cantidad mínima de lugares decimales necesarios para mostrar todos los elementos con al menos los dígitos dígitos significativos. Sin embargo, si todos los elementos tienen ceros al final, el número de lugares decimales se reduce hasta nsmall"
micstr
1
Entonces 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.
micstr
Pasé bastante tiempo tratando de encontrar scientificcuál está escondido en el pajar de argumentos format. ¡Gracias!
La función comma_format solo puede tratar con números enteros.
Ven Yao
3
Esta es una respuesta muy tarde, y que puede haber sido cierto en el pasado que 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".
steveb
2
scale :: coma (1000000) parece digno de mención.
Joe
3
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.
Respuestas:
Puede probar con formato o prettyNum, pero ambas funciones devuelven un vector de caracteres. Solo lo usaría para imprimir.
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:
Añadir
trim=TRUE
aformat
opreserve.width="none"
aprettyNum
prevenir esto:fuente
prettyNum(c(123,1234),big.mark=",")
:; da" 123" "1,234"
. añadirtrim=T
aformat
opreserve.width="none"
paraprettyNum
prevenir 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.scientific
cuál está escondido en el pajar de argumentosformat
. ¡Gracias!Ver
?format
:fuente
Las otras respuestas publicadas obviamente funcionan, pero siempre he usado
fuente
comma_format
no 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
scales
paquete (parte delTidyverse
) hace exactamente esto:El
scales
paquete parece funcionar muy bienggplot2
, lo que permite un control preciso de cómo se muestran los números en gráficos y gráficos.fuente