Contar el número de observaciones en R

Manav Narula 25 febrero 2021
Contar el número de observaciones en R

En situaciones de la vida real, tratamos con grandes conjuntos de datos. Estos pueden superar los cientos de observaciones, y a veces puede haber una necesidad de extraer algunos datos específicos del conjunto.

Para estas situaciones, tenemos algunos métodos en R, que pueden ayudar a contar el total de observaciones de estos datos filtrados. En este tutorial trabajaremos con el siguiente DataFrame.

df <- data.frame( gender = c("M","F","M","M"),
                  age = c(18,19,14,22),
                  stream = c("Arts","Science","Arts","Commerce"))
print(df)

Producción :

  gender age   stream
1      M  18     Arts
2      F  19  Science
3      M  14     Arts
4      M  22 Commerce

El primer método implica las funciones with() y sum().

La función with() devuelve un vector lógico basado en alguna expresión después de aplicarla a todo el conjunto de datos, y la función sum() devolverá la suma de todas las observaciones True.

El siguiente fragmento de código muestra cómo funciona esto.

df <- data.frame( gender = c("M","F","M","M"),
                  age = c(18,19,14,22),
                  stream = c("Arts","Science","Arts","Commerce"))
                  
sum(with(df,gender == "M"))
[1] 3

También podemos sumar múltiples expresiones utilizando el operador &.

sum(with(df,gender == "M" & stream == "Commerce"))
[1] 1

Otro método consiste en utilizar la función nrow(), que devuelve el número de filas de un conjunto de datos. Podemos filtrar las observaciones necesarias del DataFrame, como se muestra a continuación:

nrow(df[df$gender == "M",])
[1] 3

De nuevo, podemos añadir múltiples expresiones como lo que hacemos en la función with().

nrow(df[df$gender == "M" & df$stream == "Commerce",])
[1] 1

También podemos utilizar la función filter() proporcionada en la biblioteca dplyr. Esto devuelve un subconjunto de datos basado en alguna condición. El siguiente ejemplo explica cómo:

library(dplyr)
nrow(filter(df,gender == "M"))
[1] 3
nrow(filter(df,gender == "M" & stream == "Commerce"))
[1] 1
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - R Data Frame