Cómo dar formato a números en r

Cuando usted produce informes en R, tendrá que sus números aparezcan todas muy bien formateados para mejorar el impacto de sus datos en el espectador. Puedes usar format () para convertir sus números en texto bonito, listo para imprimir. Esta función toma una serie de argumentos para controlar el formato de su resultado. Aquí están algunos:

  • recortar: Un valor lógico. Si FALSO, agrega espacios a la derecha; justifica el resultado. Si CIERTO, suprime los espacios iniciales.

  • dígitos: ¿Cuántos dígitos significativos de los valores numéricos para mostrar.

  • nsmall: El número mínimo de dígitos después del punto decimal.

Además, se puede controlar el formato del punto decimal con decimal.mark, la marca entre los intervalos antes del punto decimal con big.mark, así como de la marca entre los intervalos después de la coma con small.mark.

Por ejemplo, puede imprimir el número 12345.6789 con una coma como separador decimal, espacios como el gran signo, y los puntos como la marca pequeña:

> Formato (12345.6789, dígitos = 9, decimal.mark = "", + big.mark = "", small.mark = ".",, Small.interval = 3) [1] "12 345,678.9"

Como un ejemplo más práctico, para el cálculo de los medios de algunas columnas en mtcars y luego imprimir los resultados con dos dígitos después del punto decimal, utilizar lo siguiente:

> X lt; - colMeans (mtcars [, 1: 4])> formato (x, dígitos = 2, nsmall = 2) disphp mpg cil "20.09" "6.19" "230.72" "146.69"

Observe que el resultado ya no es un número, pero una cadena de texto.

Si está familiarizado con la programación en lenguajes similares a C o C ++, entonces usted también puede encontrar el sprintf () función útil, porque sprintf () es una envoltura alrededor de la C printf () función. Este envoltorio le permite pegar el número formateado directamente en una cadena.

He aquí un ejemplo de la conversión de números en porcentajes:

> X lt; - ss (0.5, 0.55, 0.01)> sprintf ("% 1f %%.", 100 * x) [1] "50,0%" "51,0%" "52,0%" "53,0%" "54,0%" " 55,0% "

Esto es lo que hace: El primer argumento sprintf () indica el formato - en este caso, "% .1f %%". El argumento de formato utiliza literales especiales que indican que la función debe reemplazar este literal con una variable y aplicar algún formato. Los literales siempre comienzan con la % símbolo. Por lo tanto, en este caso, % .1f significa formatear el primer valor suministrado como un punto fijo valor con un dígito después del punto decimal, y %% es un literal que significa imprimir un %.

Para dar formato a algunos números como moneda - en este caso, dólares estadounidenses - utilizan la siguiente:

> Set.seed (1)> x lt; - 1000 * runif (5)> sprintf ("$% 3.2f", x) [1] "$ 265.51" "$ 372.12" "$ 572.85" "$ 908.21" "$ 201.68"

Como se vio anteriormente, el literal % 3.2f significa formatear el valor como un valor de punto fijo con tres dígitos antes del decimal y dos dígitos después del punto decimal.

los sprintf () función es mucho más poderoso que eso: Te da una forma alternativa de pegar el valor de cualquier variable en una cadena:

> Cosas lt; - c ("pan", "cookies")> Precio lt; - c (2,1, 4)> sprintf ("% s $ COSTED% 3.2f", materia, precio) [1] "pan costó $ 2.10" "Galletas costaron $ 4.00"

Lo que sucede aquí es que, debido a que proporcionó dos vectores (cada uno con dos elementos) para sprintf (), el resultado es un vector con dos elementos. Ciclos de R a través de los elementos y los coloca en el sprintf () literales. Por lo tanto, % s (indicando el formato del valor como una cadena) obtiene el valor "pan" la primera vez y "cookies" la segunda vez.

Usted puede hacer todo con pegar() y format () que se puede ver con sprintf ().




» » » » Cómo dar formato a números en r