Suma y media de filas y columnas en R

Manipulaci贸n de datos con R Transformaci贸n de datos
colSums, rowSums, colMeans y rowMeans en R

Las funciones colSums y colMeans calculan la suma y la media de cada columna de un data frame o matriz mientras que rowSums y rowMeans calculan la suma y la media de cada una de las filas del objeto. Estas funciones son equivalentes a utilizar apply con FUN = sum o FUN = mean para filas o columnas, pero mucho m谩s eficientes.

Suma de cada columna con colSums

La funci贸n colSums calcula la suma de cada una de las columnas de un data frame o matriz. En los siguientes bloques de c贸digo vamos a utilizar la siguiente matriz de ejemplo con cuatro columnas y nueve filas:

# Matriz de ejemplo
x <- matrix(50:85, ncol = 4)
x
      [,1] [,2] [,3] [,4]
 [1,]   50   59   68   77
 [2,]   51   60   69   78
 [3,]   52   61   70   79
 [4,]   53   62   71   80
 [5,]   54   63   72   81
 [6,]   55   64   73   82
 [7,]   56   65   74   83
 [8,]   57   66   75   84
 [9,]   58   67   76   85

Si quieres calcular la suma de cada una de las cuatro columnas, puedes introducir la matriz en la funci贸n colSums.

# Suma de cada columna
colSums(x)

# Equivalente a:
# apply(x, 2, sum)
486 567 648 729

As铆, la suma de la primera columna es 486, la suma de la segunda es 567, la suma de la tercera es 648 y la suma de la cuarta columna es 729.

Si tu objeto contiene alg煤n valor NA puedes establecer el argumento na.rm como TRUE. Considera la misma matriz pero con dos valores NA:

# Matriz de ejemplo
x <- matrix(50:85, ncol = 4)
x[3, 2:3] <- NA
x
      [,1] [,2] [,3] [,4]
 [1,]   50   59   68   77
 [2,]   51   60   69   78
 [3,]   52   NA   NA   79
 [4,]   53   62   71   80
 [5,]   54   63   72   81
 [6,]   55   64   73   82
 [7,]   56   65   74   83
 [8,]   57   66   75   84
 [9,]   58   67   76   85

Si intentas calcular las sumas obtendr谩s dos valores NA en las columnas que contienen esos valores que faltan.

colSums(x)
486  NA  NA 729

Para evitar este problema y calcular la suma de los valores disponibles tendr谩s que establecer na.rm = TRUE como en el ejemplo siguiente.

# Suma de cada columna eliminando valores NA
colSums(x, na.rm = TRUE)

# Equivalente a:
# apply(x, 2, sum, na.rm = TRUE)
486 506 578 729

Media de cada columna con colMeans

La funci贸n colMeans calcula la media de cada una de las columnas de un data frame o matriz.

# Matriz de ejemplo
x <- matrix(50:85, ncol = 4)

# Media de cada columna
colMeans(x)

# Equivalente a:
# apply(x, 2, mean)
54 63 72 81

La salida significa que la media de los valores de la primera columna es 54, la media de la segunda columna es 63 y as铆 sucesivamente. Si tus datos contienen alg煤n valor NA recuerda establecer na.rm = TRUE.

Suma de cada fila con rowSums

La funci贸n rowSums calcula la suma de cada una de las filas de un data frame o matriz. S贸lo tienes que introducir tu objeto en la funci贸n.

# Matriz de ejemplo
x <- matrix(50:85, ncol = 4)

# Suma de cada fila
rowSums(x)

# Equivalente a:
# apply(x, 1, sum)
254 258 262 266 270 274 278 282 286

En el ejemplo anterior, la suma de los valores de la primera fila es 254, la suma de la segunda fila es 258 y as铆 sucesivamente. Si los datos contienen valores omitidos, puedes establecer el argumento na.rm de la funci贸n como TRUE para ignorarlos.

Media de cada fila con rowMeans

La funci贸n rowMeans calcula la media de cada una de las filas de un data frame o matriz. Tendr谩s que pasar tu matriz o data frame como entrada de la funci贸n para obtener las medias de cada una de las filas.

# Matriz de ejemplo
x <- matrix(50:85, ncol = 4)

# Media de cada fila
rowMeans(x)

# Equivalente a:
# apply(x, 1, mean)
63.5 64.5 65.5 66.5 67.5 68.5 69.5 70.5 71.5

La media de los valores de la primera fila es 63.5, la media de los valores de la segunda fila es 64.5 y as铆 sucesivamente.