R

Operaciones por filas o columnas con apply en R

A la hora de trabajar con R puede ser interesante obtener el mínimo o máximo de cada una de las columnas de una matriz. En otras ocasiones puede ser interesante obtener por ejemplo la media, mediana o desviación estándar. Las funciones nativas de R no funcionan de esta manera, ya que generalmente trabajan sobre todo la matriz. Por lo que en estas situaciones se ha de utilizar el método apply en R para obtener este tipo de resultados.

En esta entrada se repasa el funcionamiento básico del método apply en R. Una herramienta muy potente.

Mínimo de una columna con apply en R

La forma de aplicar una misma función sobre una columna o una fila de una matriz en R es mediante la función apply. A esta función se le ha de indicar como primer parámetro la matriz sobre la que se va a trabajar, el segundo será el eje y el tercero la función a aplicar. Por ejemplo, para obtener el mínimo de en cada una de las columnas de una matriz se puede utilizar:

apply(z, 1, min)

Por otro lado, el mínimo de cada columna se puede obtener mediante la expresión:

apply(z, 2, min)

En este segundo código solamente se ha modificado el valor del eje. En estos se puede ver que el valor 1 indica filas, mientras que el valor 2 indica columnas. El funcionamiento de estas funciones se puede ver en el siguiente ejemplo:

> z <- matrix(1:6,nrow=2) > z
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

> apply(z, 1, min)
[1] 1 2

> apply(z, 2, min)
[1] 1 3 5

# Eliminación de valores nulos

En el caso de que la matriz contenga valores nulos y se deseen omitir se le puede indicar a apply. Simplemente se ha de pasar como cuarto parámetro la opción na.rm = TRUE). En el siguiente ejemplo se puede ver el funcionamiento de esta opción:

> z[2,2] <- NA
> z
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2   NA    6

> apply(z, 2, min)
[1]  1 NA  5

> apply(z, 2, min, na.rm = TRUE)
[1] 1 3 5

Conclusiones

En esta entrada se ha visto el funcionamiento básico de la función apply. Gracias a ella se puede operar sobre las filas o columnas de las matrices en R facilitando bastantes análisis de datos.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Cómo construir tu primer scorecard paso a paso

En los artículos anteriores de esta serie vimos la teoría detrás del credit scoring: qué…

1 día ago

Actualizar expresslanets a ES Modules con tsx y Vitest

expresslanets es la plantilla de API REST con Express y TypeScript que empezó como una…

6 días ago

Pareto/NBD: cuando el abandono silencioso cambia el CLV

En el artículo del Dashboard vimos que Pareto/NBD aparecía junto a BG/NBD con un ajuste…

1 semana ago

Por qué migrar tus proyectos TypeScript a ES Modules en 2026

Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…

2 semanas ago

Método del codo: interpretación correcta y limitaciones

Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…

2 semanas ago

Errores comunes al interpretar resultados estadísticos

La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…

3 semanas ago

This website uses cookies.