Cómo aplicar funciones en filas y columnas en r
En R, se puede utilizar el aplicar ()
la función de aplicar una función sobre cada fila o columna de un bastidor de matriz o de datos. Esto presenta algunas oportunidades muy útiles.Contar en I utilizando el aplicar función
Imagina que contó los pájaros en su patio trasero en tres días diferentes y almacenó los recuentos en una matriz de esta manera:
> Recuentos lt; - matriz (c (3,2,4,6,5,1,8,6,1), ncol = 3)> COLNAMES (cuenta) lt; - c ('gorrión', 'paloma', 'cuervo')> paloma countssparrow cuervo [1], 368 [2], 256 [3], 411
Cada columna representa una especie diferente, y cada fila representa un día diferente. Ahora usted desea conocer el número máximo por especie en un día determinado. Usted podría construir un para bucle para hacerlo, pero utilizando aplicar (), lo hace en una sola línea de código:
> Aplicar (recuento, 2, max) sparrowdovecrow4 6 8
los aplicar () función devuelve un vector con el máximo de cada columna y convenientemente utiliza los nombres de columna como nombres de este vector también. Si R no encuentra nombres para la dimensión sobre la que aplicar () carreras, devuelve un objeto no identificado en su lugar.
Echemos un vistazo a cómo este aplicar () función funciona. En las líneas anteriores de código, que utilizó tres argumentos:
El objeto en el que la función tiene que ser aplicado: En este caso, es la matriz conteos.
La dimensión o el índice sobre los que la función tiene que ser aplicados: El numero 1 significa fila sabio, y el número 2 significa por columnas. En este caso, se aplica la función sobre las columnas. En el caso de matrices de más dimensiones, este índice puede ser mayor que 2.
El nombre de la función que tiene que ser aplicado: Usted puede usar comillas alrededor del nombre de la función, pero usted no tiene que hacerlo. Aquí, aplicamos la función max. Tenga en cuenta que no hay paréntesis necesarios después del nombre de la función.
los aplicar () función divide la matriz en filas. Recuerde que si selecciona una sola fila o columna, R será, por defecto, simplificar la que a un vector. los aplicar () función a continuación, utiliza estos vectores, uno por uno como argumento a la función que ha especificado. Por lo tanto, la función aplicada tiene que ser capaz de tratar con los vectores.
Añadir argumentos adicionales al aplicar función
Volvamos a nuestro ejemplo de la sección anterior: Te imaginas no buscar las palomas del segundo día. Esto significa que, para ese día, usted no tiene ningún dato, así que tienes que fijar ese valor a N / A Me gusta esto:
> Recuentos [2, 2] lt; - NA
Si se aplica el max función de las columnas de esta matriz, se obtiene el siguiente resultado:
> Aplicar (recuento, 2, max) sparrowdovecrow4 NA 8
Eso no es lo que quieres. Con el fin de hacer frente a los valores que faltan, es necesario pasar a la discusión na.rm al max función en el aplicar () llame al (véase el capítulo 4). Por suerte, esto se hace fácilmente en R. Usted sólo tiene que añadir todos los argumentos adicionales a la función como argumentos adicionales del aplicar () llamar, así:
> Solicite (recuentos, 2, máximo, na.rm = TRUE) sparrowdovecrow4 6 8
Puede pasar cualquier argumento que desea la función en el aplicar () llamar con sólo añadir que entre los paréntesis después de los tres primeros argumentos.