Cuente el número de filas dentro de cada grupo en R DataFrame

DataFrame en lenguaje de programación R puede contener columnas en las que no todos los valores son únicos. Los valores duplicados en el marco de datos se pueden dividir en secciones en un solo grupo. Las frecuencias correspondientes a la secuencia de las mismas columnas se pueden capturar utilizando varios paquetes externos en el lenguaje de programación R.

Método 1: Usar el paquete dplyr

El paquete «dplyr» en R se usa para realizar mejoras y manipulaciones de datos. Podemos usar ciertas funciones de este método que pueden ayudar a realizar nuestra funcionalidad.

  • Usando el método tally() y group_by()

El método group_by() en R se puede usar para categorizar datos en grupos según una sola columna o un grupo de varias columnas. Todas las combinaciones únicas plausibles de las columnas de entrada se apilan juntas como un solo grupo. 

Sintaxis:

group_by(argumentos .. )

Donde, los argumentos contienen una secuencia de columnas para agrupar datos sobre

El método tally() en R se usa para resumir los datos y contar la cantidad de valores a los que pertenece cada grupo. Tras la aplicación sucesiva de estos métodos, las mutaciones del marco de datos se llevan a cabo para devolver una tabla donde las columnas de entrada particulares se devuelven en orden de aparición en el método group_by(), seguidas de una columna ‘n’ que contiene recuentos de frecuencia para estos grupos. 

Este método se considera mejor que otros enfoques porque devuelve información detallada sobre las clases de columna del marco de datos especificado. 

Ejemplo:

R

library("dplyr")
  
# creating a dataframe
data_frame <- data.frame(col1 = rep(c(1:3), each = 3),
                         col2 = letters[1:3])
  
print ("Original DataFrame")
print (data_frame)
  
# group by column1 values and count
# the total in each
data_frame %>% group_by(col1) %>%tally()

Producción

[1] "Original DataFrame" 
   col1 col2 
1    1    a 
2    1    b 
3    1    c 
4    2    a 
5    2    b 
6    2    c 
7    3    a 
8    3    b 
9    3    c > 
# A tibble: 3 x 2    
col1     n   
<int> <int> 
1     1     3 
2     2     3 
3     3     3
  • Usando el método dplyr::count()

El método count() se puede aplicar al marco de datos de entrada que contiene una o más columnas y devuelve un recuento de frecuencia correspondiente a cada uno de los grupos. Las columnas devueltas en la aplicación de este método son un subconjunto adecuado de las columnas del marco de datos original. Las columnas que aparecen en el resultado son las columnas que aparecen en el método count(). 

Sintaxis:

contar(argumentos .. ), 

Donde, los argumentos contienen una secuencia de columnas para agrupar datos sobre

Ejemplo:

R

library("dplyr")
  
# creating a dataframe
data_frame <- data.frame(col1 = rep(c(1:3), each = 3),
                         col2 = letters[1:3],
                         col3 = c(1,4,1,2,2,3,1,2,2))
  
print ("Original DataFrame")
print (data_frame)
  
print ("Modified DataFrame")
  
# count rows by col1 and col3 group
data_frame %>% dplyr::count(col1, col3)

Producción:

[1] "Original DataFrame"  
   col1 col2 col3 
1    1    a    1 
2    1    b    4 
3    1    c    1 
4    2    a    2 
5    2    b    2 
6    2    c    3 
7    3    a    1 
8    3    b    2 
9    3    c    2 
[1] "Modified DataFrame" 
   col1 col3 n 
1    1    1  2 
2    1    4  1 
3    2    2  2 
4    2    3  1 
5    3    1  1 
6    3    2  2

Método 2: Usar el paquete data.table

El paquete data.table en R se puede usar para recuperar y almacenar datos en una estructura tabular organizada. El atributo .N de la indexación de la tabla de datos se puede usar para mantener categóricamente un recuento de la frecuencia de las combinaciones de columnas especificadas encontradas. Las columnas se especifican en el atributo “by” utilizando el método list() en R, que es una alternativa al método group_by(). 

Sintaxis:

tabla_datos[, .N, por = lista(cols..)]

Ejemplo:

R

library(data.table)
  
# creating a dataframe
data_frame <- data.frame(col1 = rep(c(1:3), each = 3),
                         col2 = letters[1:3],
                         col3 = c(1,4,1,2,2,3,1,2,2))
  
print ("Original DataFrame")
print (data_frame)
  
print ("Modified DataFrame")
data_table <- data.table(data_frame)
data_table[, .N, by = list(col1, col3)]

Producción

[1] "Original DataFrame" 
   col1 col2 col3 
1    1    a    1 
2    1    b    4 
3    1    c    1 
4    2    a    2 
5    2    b    2 
6    2    c    3 
7    3    a    1 
8    3    b    2 
9    3    c    2
[1] "Modified DataFrame" 
   col1 col3 N 
1:    1    1 2 
2:    1    4 1 
3:    2    2 2 
4:    2    3 1 
5:    3    1 1 
6:    3    2 2

Método 3: Usando el método agregado

El método de agregación() en el lenguaje de programación R es una función genérica utilizada para resumir y evaluar tanto series temporales como marcos de datos. 

Sintaxis:

agregado (fórmula, datos, DIVERSIÓN)

Parámetro: 

  • fórmula: como y ~ x donde las variables y son datos numéricos que se dividirán en grupos de acuerdo con la agrupación de variables x.
  • por – elementos de agrupación 
  • FUN – función a aplicar

La función a aplicar aquí es la longitud, que cuenta la frecuencia asociada a cada grupo. Calcula las posibles combinaciones de todas las columnas mencionadas en la fórmula y muestra cada una con una frecuencia asociada. Por lo tanto, se utiliza para realizar una agregación sobre todas las columnas.

Ejemplo:

R

data_frame <- data.frame(col1 = sample(1:2,9,replace = TRUE),
                         col2 = letters[1:3],
                         col3 = c(1,4,1,2,2,3,1,2,2))
  
print ("Original DataFrame")
print (data_frame)
  
print ("keeping a count of all groups")
  
data_mod <- aggregate(col3 ~ col1 + col2,
          data = data_frame,
          FUN = length)
print (data_mod)

Producción

[1] "Original DataFrame" 
col1 col2 col3 
1    2    a    1 
2    2    b    4 
3    1    c    1 
4    1    a    2 
5    1    b    2 
6    2    c    3 
7    2    a    1 
8    2    b    2 
9    1    c    2 
[1] "keeping a count of all groups" 
col1 col2 col3 
1    1    a    1 
2    2    a    2 
3    1    b    1 
4    2    b    2 
5    1    c    2 
6    2    c    1

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 *