10 cosas que usted puede hacer en r que usted ha hecho en microsoft excel

La hoja de cálculo es probablemente una de las aplicaciones de PC más utilizados - y por una buena razón: Las hojas de cálculo hacen que sea muy fácil de realizar cálculos y otras operaciones en los datos tabulares. Pero las hojas de cálculo plantean algunos riesgos, así: Son fáciles de corromper y muy difícil de depurar. La buena noticia es que usted puede utilizar R para hacer muchas de las mismas cosas que solía hacer en hojas de cálculo.

Adición de filas y columnas totales

Una de las tareas que puede hacer con frecuencia en una hoja de cálculo es el cálculo de fila o columna de totales. La forma más sencilla de hacerlo es utilizar las funciones rowSums () y colSums (). Del mismo modo, utilizar rowMeans () y colMeans () medios para calcular.

Pruébalo en el conjunto de datos integrada iris. En primer lugar, quitar la quinta columna, ya que contiene el texto que describe las especies de iris:

> Iris.num lt; - iris [, -5]

Luego calcule la suma y la media para cada columna:

> ColSums (iris.num)> colMeans (iris.num)

Estas dos funciones son muy convenientes, pero es posible que desee para calcular alguna otra estadística para cada columna o fila. Hay una manera fácil de atravesar las filas o columnas de una matriz o trama de datos: el aplicar () función. Por ejemplo, para obtener el mínimo de una columna es la misma que la aplicación de una min () funcionar a la segunda dimensión de sus datos:

> Aplicar (iris.num, 2, min)> aplica (iris.num, 2, max)

Formato numéricos

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, permite controlar el formato del punto decimal con decimal.mark, la marca entre los intervalos antes de el punto decimal con big.mark, y la marca entre los intervalos después el punto decimal 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 = ". # 148 ;, 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) mpg cil disphp " 20.09 " " 6.19 " " 230,72 " " 146,69 "

Observe que el resultado ya no es un número, pero una cadena de texto. Por lo tanto, tenga cuidado cuando se utiliza el formato de número - este debe ser el último paso en el flujo de trabajo de informes.

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. 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 %% # 148 ;, 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 valor de punto fijo 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 - uso:

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

los sprintf () función que le da una forma alternativa de pegar el valor de cualquier variable en una cadena:

> Cosas lt; - c (" # 148 ;, el pan " galletas ")> Precio lt; - c (2,1, 4)> sprintf (" s% costo $% 3.2f “ ;, cosas, precio) [1] " pan cuesta $ 2,10 " " galletas cuestan $ 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.

Usted puede hacer todo con pegar() y format () que se puede ver con sprintf (), por lo que en realidad no siempre hay que usarla. Pero cuando lo hace, se puede simplificar el código.

Ordenación de datos

Para ordenar los datos en R, se utiliza el sort () o orden() funciones.

Para ordenar la trama de datos mtcars en el aumento o disminución de orden de la columna CV, usar:

> Con (mtcars, mtcars [fin (CV),])> con (mtcars, mtcars [orden (hp, disminuyendo = TRUE),])

Tomar decisiones con si

Las hojas de cálculo le dan la capacidad para llevar a cabo todo tipo de " Qué pasa si "? análisis. Una forma de hacer esto es utilizar el si () función en una hoja de cálculo.

R también tiene la si () función, pero se utiliza sobre todo para el control de flujo en los scripts. Debido a que normalmente desea realizar un cálculo en un vector entero en R, por lo general es más apropiado utilizar el ifelse () función.

He aquí un ejemplo del uso de ifelse () para identificar los coches con alta eficiencia de combustible en el conjunto de datos mtcars:

> Mtcars lt; - transformación (mtcars, + mpgClass = ifelse (mpg lt; significa (mpg), " # 148 ;, bajo " de alta "))> mtcars [mtcars $ mpgClass == " # 148 ;, alta]

Calculando los totales condicionales

Otra cosa que probablemente hizo mucho en Excel está calculando sumas condicionales y cuenta con las funciones función SUMAR.SI () y countif ().

Usted puede hacer lo mismo en una de dos maneras en I:

  • Usar ifelse.

  • Simplemente calcular la medida de los intereses de un subconjunto de sus datos.

Digamos que usted desea calcular una media condicional de la eficiencia del combustible en mtcars. Esto se hace con el significa () función. Ahora, para obtener la eficiencia de combustible para los coches a ambos lados de un umbral de 150 caballos de fuerza, pruebe lo siguiente:

> Con (mtcars, media (mpg)) [1]> 20.09062 con (mtcars, media (mpg [CV lt; 150])) [1] 24.22353> con (mtcars, media (mpg [CV> = 150])) [1] 15.40667

Contar el número de elementos de un vector es lo mismo que preguntar acerca de su longitud. Esto significa que la función de Excel countif () R tiene un equivalente en largo():

> Con (mtcars, longitud (mpg [CV> 150])) [1] 13

La transposición de las columnas o filas

A veces es necesario incorporar sus datos de filas a columnas o viceversa. En R, la función de transponer una matriz es t ():

> X lt; - matriz (1:12, ncol = 3)> x [1] [2] [3] [1], 1 5 9 [2], 2 6 10 [3], 3 7 11 [4 ,] 4 8 12

Para obtener la transpuesta de una matriz, el uso t ():

> T (x) [, 1] [, 2] [, 3] [, 4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12

También puede utilizar t () transponer tramas de datos, pero tenga cuidado cuando haga esto. El resultado de una transposición es siempre una matriz (o matriz). Debido a que las matrices siempre tienen un solo tipo de variable, como numérica o de caracteres, los tipos de variables de los resultados pueden no ser lo que usted espera.

Encontrar valores únicos o duplicados

Para identificar todos los valores únicos en sus datos, utilice el único () función. Trate de encontrar los valores únicos de número de cilindros en mtcars:

> Únicos (mtcars $ cil) [1] 6 4 8

A veces quieres saber qué valores de los datos son duplicados. Dependiendo de su situación, los duplicados serán válidas, pero a veces duplicar entradas pueden indicar problemas de ingreso de datos.

La función de identificar las entradas duplicadas es duplicado (). En el conjunto de datos integrada iris, hay una fila duplicada en la línea 143. Pruebe usted mismo:

> Incautos lt; - duplicados (iris)> cabeza (incautos) [1] false false false false false false> que (incautos) [1] 143> iris [incautos,] Sepal.Length Sepal.Width Petal.Length Petal.Width Species143 5.8 2,7 5,1 1,9 virginica

Debido a que el resultado de duplicado () es un vector lógico, se puede utilizar como un índice para eliminar las filas de sus datos. Para ello, utilice el operador de negación - el signo de exclamación (como en !incautos):

> Iris [! Incautos,]> nRow (iris [! Incautos,]) [1] 149

Trabajar con tablas de búsqueda

En una aplicación de hoja de cálculo como Excel, puede crear tablas de consulta con las funciones BUSCARV o una combinación de índice y partido.

En R, puede ser conveniente utilizar merge () o partido(). los partido() función devuelve un vector con las posiciones de los elementos que coincidan con el valor de búsqueda.

Por ejemplo, para encontrar la ubicación del elemento "Toyota Corolla" en los nombres de las filas de mtcars, intente lo siguiente:

> Índice lt; - Partido (" Toyota Corolla # 148 ;, rownames (mtcars))> índice [1] 20> mtcars [índice, 1: 4] mpg cil disp hpToyota Corolla 33,9 4 71,1 65

Trabajar con tablas dinámicas

Para las tablas simples en R, se puede utilizar el tapply () función para lograr resultados similares para pivotar tablas en Excel. He aquí un ejemplo del uso de tapply () para calcular media CV para los coches con diferentes números de cilindros y engranajes:

> Con (mtcars, tapply (CV, lista (cyl, engranajes), significa)) 3 4 54 97.0000 76.0 102,06 107.5000 194.1667 116.5 175.08 299.5 NA

Para las tablas un poco más complejas - es decir, mesas con más de dos factores cruzada clasificatorias - utilizan el agregada () función:

> Agregada (hp ~ cil + engranajes + am, mtcars, significan) engranajes cil amhp1 4 3 0 97.000002 6 3 0 107.500003 8 3 0 194.166674 4 4 0 78.500005 6 4 0 123.000006 4 4 1 75.166677 6 4 1 110.000008 4 5 1 102.000009 6 5 1 175.0000010 8 5 1 299.50000

Usando el objetivo de buscar y solucionador

En R, la optimizar () función proporciona un mecanismo bastante simple para la optimización de funciones.

Imagínese que usted es el director de ventas de una empresa y tiene que establecer el mejor precio para su producto. En otras palabras, encontrar el precio de un producto que maximiza los ingresos.

En economía, un modelo simple de estados de precios que la gente compra menos de un producto dado, cuando los aumentos de precios. He aquí una función muy simple que tiene este comportamiento:

> Ventas lt; - la función (precio) {100 a 0,5 * Precio}

Los ingresos esperados es simplemente el producto de precio y las ventas esperadas:

> Ingresos lt; - la función (precio) {Precio * medio de venta (precio)}

Puede utilizar el curva () función para trazar las funciones continuas. Esto toma una función como entrada y produce una parcela. Trate de trazar el comportamiento de las ventas y los ingresos mediante el curva () función, precio desde $ 50 a $ 150 variables:

> Oldpar lt; - par (= mfrow c (1, 2), bty = " l ")> curva (ventas, desde = 50, a = 150, XName = " # 148 ;, precio principal = " Sales ")> curva (de ingresos, de = 50, a = 150, XName = " # 148 ;, precio principal = " Ingresos ")> par (oldpar)

Sus resultados deben ser similar a esto.

Un modelo de ventas y los ingresos esperados.
Un modelo de ventas y los ingresos esperados.

Usted tiene un modelo de trabajo de ventas e ingresos. Se puede ver de inmediato que hay un punto de ingreso máximo. A continuación, utilice la función R optimizar () para encontrar el valor de ese máximo. Para usar optimizar (), Usted necesita decir lo que funcionan para utilizar (en este caso, ingresos ()), Así como el intervalo (en este caso, los precios de entre 50 y 150). Por defecto, optimizar () busca un valor mínimo, por lo que en este caso tienen que decirle a buscar el máximo valor:

> Optimizar (ingresos, intervalo = c (50, 150), máximo = TRUE) $ máximo [1] 100 $ objetiva [1] 5000

Y ahí lo tienes. Cargue un precio de $ 100, y esperar obtener $ 5,000 en ingresos.




» » » » 10 cosas que usted puede hacer en r que usted ha hecho en microsoft excel