2010-10-01 90 views

Respuesta

89

Usted puede tratar de cualquier formato o prettyNum, pero ambas funciones devuelven un vector de caracteres. Solo usaría eso para imprimir.

> prettyNum(12345.678,big.mark=",",scientific=FALSE) 
[1] "12,345.68" 
> format(12345.678,big.mark=",",scientific=FALSE) 
[1] "12,345.68" 

EDIT: Como dice Michael Chirico en el comentario:

Tenga en cuenta que estos tienen el efecto secundario de relleno de las cuerdas impresas con espacio en blanco, por ejemplo:

> prettyNum(c(123,1234),big.mark=",") 
[1] " 123" "1,234" 

Agregar trim=TRUE a format o preserve.width="none" a prettyNum para evitar 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" 
+5

Tenga en cuenta que estos tienen el efecto secundario de relleno de las cuerdas impresas con espacio en blanco, por ejemplo: 'prettyNum (c (123 , 1234), big.mark = ",") '; da '" 123 "" 1,234 "'. agregue 'trim = T' a' format' o 'preserve.width =" none "' a 'prettyNum' para evitar esto. – MichaelChirico

+0

@MichaelChirico Gracias por la información adicional. Lo he agregado a la respuesta. –

+0

Tenga en cuenta que si también tiene dígitos de configuración para las posiciones decimales, si tiene un vector, puede salir mal si los numebrs son bastante diferentes. De la ayuda "Los vectores numéricos están codificados con el número mínimo de decimales necesario para mostrar todos los elementos al menos los dígitos dígitos significativos. Sin embargo, si todos los elementos tienen ceros finales, el número de decimales se reduce hasta nsmall" – micstr

26

Ver ?format:

> format(1e6, big.mark=",", scientific=FALSE) 
[1] "1,000,000" 
> 
6

Las otras respuestas publicadas obviamente funcionan - pero siempre han utilizado

library(scales)  
comma_format()(1000000) 
+0

La función comma_format solo puede tratar con enteros. –

+3

Esta es una respuesta muy tardía, y puede haber sido verdad en el pasado que 'formato_comma 'no manejaba los números reales, pero ahora puede hacer lo siguiente:' escalas :: formato_comma (dígitos = 12) (1000000.789) 'que resultados en lo siguiente: '" 1,000,000.789 "'. – steveb

Cuestiones relacionadas