Cómo contar valores por nivel en un factor en R

En este artículo, discutiremos cómo contar los valores por nivel en un factor dado en el lenguaje de programación R.

Método 1: usar el método de resumen()

El método summary() en base R es una función genérica que se utiliza para generar resúmenes de los resultados de las funciones calculadas en función de la clase del argumento pasado. La función summary() produce una salida de las frecuencias de los valores por nivel de la columna de factor dada del marco de datos en R. Un resumen estadístico para cada una de las variables de esta columna resulta en un formato tabular, como salida. El resultado es conciso y claro para que se entienda fácilmente. 

Ejemplo:

R

set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(letters,50,rep=TRUE))
  
# count of variables
summary(data_frame$col1)

Producción:

abcdefghijklnorstuvwy z  

3 2 1 1 3 3 2 1 2 5 1 3 3 3 1 1 3 3 1 2 5 1 

Método 2: Usar el método lapply()

El paquete plyr en R se usa para simular mejoras y manipulaciones de datos y se puede instalar en el espacio de trabajo.

el método lapply() en R devuelve una lista de la misma longitud que la del vector de entrada donde cada elemento es el resultado de la aplicación de la función especificada a ese elemento correspondiente. Este método toma como entrada el marco de datos o las listas y devuelve la lista como salida. 

Sintaxis:

lapply(vec, DIVERSIÓN)

Parámetros: 

vec: el vector de tipo de factor atómico para aplicar la función en

FUN – La función a aplicar, en este caso, que es equivalente a contar, para devolver la frecuencia de los niveles de los factores.

La salida devuelve una lista donde el primer componente es el nivel del factor y la segunda columna es la frecuencia de ese nivel. Se añade un número de fila al comienzo de cada fila de salida. 

R

# importing required libraries
library ("plyr")
  
set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(
  letters,50,rep=TRUE))
  
# counting frequencies of factor
# levels
lapply(data_frame, count)

Producción

$col1    

   frecuencia x 

1 a 3 

2 segundo 2 

3 c 1 

4 días 1 

5 y 3 

6f3 

7 gramos 2 

8 horas 1 

9 yo 2 

10 j 5 

11 k 1 

12 l 3 

13 n 3

14 o 3 

15 r 1 

16 s 1 

17 t 3 

18 tu 3 

19 contra 1 

20 segundos 2 

21 y 5 

22 z 1

Método 3: Usar el paquete data.table

El paquete data.table en R se usa para trabajar con tablas para acceder, manipular y almacenar datos. 

Inicialmente, el marco de datos se convierte en data.table por referencia mediante el comando setDT(). Este método es muy útil cuando se trabaja con grandes conjuntos de datos y más observaciones. 

Sintaxis:

establecerDT(df)

El atributo keyby se aplica sobre el nombre de la columna requerida para agrupar los datos contenidos en ella. Como índice, el parámetro .N se usa en lugar de columnas para acceder al número de instancias de cada nivel de factor en particular. La salida es una tabla de frecuencias. La salida se devuelve en forma de una tabla de datos donde la fila comienza con un número de fila seguido de dos puntos. 

Ejemplo:

R

# importing required libraries
library(data.table)
  
set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(
  letters,50,rep=TRUE))
  
# counting frequencies of factor
# levels
setDT(data_frame)[, .N, keyby=col1]

Producción

  col1 norte  

1: un 3  

2: segundo 2  

3: do 1  

4: re 1  

5: mi 3  

6: f 3  

7: gramo 2  

8: hora 1  

9: yo 2 

10: j 5 

11: k 1 

12: l 3 

13: n 3 

14: o 3 

15: r 1 

16: s 1 

17: t 3 

18: tu 3 

19: v 1 

20: w 2 

21: y 5 

22: z 1     

Método 4: Usar el paquete dplyr

El paquete “dplyr” es una mejora del paquete plyr que proporciona una amplia gama de operaciones de selección y filtrado para realizar sobre los elementos de datos. Se puede cargar e instalar en el espacio de trabajo.

El método group_by() en el paquete se usa primero para agrupar los datos en diferentes categorías dependiendo de los diferentes valores encontrados. Las filas que pertenecen a un solo valor se apilan juntas. La función tally() se comporta de forma similar a la función summarise() y se utiliza para generar resúmenes según los grupos realizados. 

Sintaxis:

df %>% group_by() %>% tally()

La salida devuelta tiene la forma de un tibble, que contiene filas equivalentes a la longitud del vector de entrada. Las columnas contienen información sobre las frecuencias del nivel de factor encontrado. Este método brinda una visión clara de los tipos de columna y las dimensiones de la salida devuelta. Sin embargo, solo se muestran diez filas de forma predeterminada, que se pueden expandir aún más para ver otras.

Ejemplo:

R

# importing required libraries
library ("dplyr")
  
set.seed(1)
  
# creating data 
data_frame <- data.frame(col1 = sample(
  letters,50,rep=TRUE))
  
# counting frequencies of factor
# levels
data_frame %>% 
  group_by(col1) %>% 
  tally()

Producción

# Una tibble: 22 x 2    

col1 norte    

<fct> <int>  

1 a 3 

2 segundo 2  

3 c 1  

4 días 1  

5 y 3  

6f3  

7 gramos 2  

8 horas 1  

9 yo 2 

10 j 5 

# … con 12 filas más

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *