Compter le nombre de lignes dans chaque groupe dans R DataFrame

DataFrame dans le langage de programmation R peut contenir des colonnes où toutes les valeurs ne sont pas uniques. Les valeurs en double dans la trame de données peuvent être regroupées en un seul groupe. Les fréquences correspondant à la même séquence de colonnes peuvent être capturées à l’aide de divers packages externes en langage de programmation R.

Méthode 1 : Utilisation du package dplyr

Le package “dplyr” dans R est utilisé pour effectuer des améliorations et des manipulations de données. Nous pouvons utiliser certaines fonctions de cette méthode qui peuvent aider à réaliser notre fonctionnalité.

  • Utilisation des méthodes tally() et group_by()

La méthode group_by() dans R peut être utilisée pour classer les données en groupes basés sur une seule colonne ou un groupe de plusieurs colonnes. Toutes les combinaisons uniques plausibles des colonnes d’entrée sont empilées en un seul groupe.

Syntaxe:

group_by(arguments .. )

Où, les arguments contiennent une séquence de colonne pour regrouper les données sur

La méthode tally() dans R est utilisée pour résumer les données et compter le nombre de valeurs auxquelles chaque groupe appartient. Lors de l’application successive de ces méthodes, les mutations de la trame de données sont effectuées pour renvoyer une table où les colonnes d’entrée particulières sont renvoyées dans l’ordre de leur apparition dans la méthode group_by(), suivies d’une colonne ‘n’ contenant les nombres de fréquences pour ces groupes.

Cette méthode est considérée comme meilleure que les autres approches car elle renvoie des informations détaillées sur les classes de colonnes du dataframe spécifié.

Exemple:

R

library("dplyr")

 

data_frame <- data.frame(col1 = rep(c(1:3), each = 3),

                         col2 = letters[1:3])

 

print ("Original DataFrame")

print (data_frame)

 

data_frame %>% group_by(col1) %>%tally()

Production

[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
  • Utilisation de la méthode dplyr :: count ()

La méthode count() peut être appliquée à la trame de données d’entrée contenant une ou plusieurs colonnes et renvoie un nombre de fréquences correspondant à chacun des groupes. Les colonnes renvoyées lors de l’application de cette méthode constituent un sous-ensemble approprié des colonnes de la trame de données d’origine. Les colonnes apparaissant dans le résultat sont les colonnes apparaissant dans la méthode count().

Syntaxe:

compter(args .. ),

Où, les arguments contiennent une séquence de colonne pour regrouper les données sur

Exemple:

R

library("dplyr")

 

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_frame %>% dplyr::count(col1, col3)

Production:

[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éthode 2 : Utilisation du package data.table

Le package data.table dans R peut être utilisé pour récupérer et stocker des données dans une structure tabulaire organisée. La .N L’attribut de l’indexation data_table peut être utilisé pour conserver catégoriquement un décompte de la fréquence des combinaisons de colonnes spécifiées rencontrées. Les colonnes sont spécifiées dans l’attribut “by” à l’aide de la méthode list() dans R, qui est une alternative à la méthode group_by().

Syntaxe:

data_table[, .N, by = list(cols..)]

Exemple:

R

library(data.table)

 

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)]

Production

[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éthode 3 : Utilisation de la méthode agrégée

La méthodeaggregate() dans le langage de programmation R est une fonction générique utilisée pour résumer et évaluer à la fois les séries chronologiques et les trames de données.

Syntaxe:

agrégat (formule, données, FUN)

Paramètre :

  • formule : telle que y ~ x où les variables y sont des données numériques à diviser en groupes selon les variables de regroupement x.
  • by – groupement d’éléments
  • FUN – fonction à appliquer

La fonction à appliquer ici est la longueur, qui compte la fréquence associée à chaque groupe. Il calcule les combinaisons plausibles de toutes les colonnes mentionnées dans la formule, et affiche chacune avec une fréquence associée. Ainsi, il est utilisé pour effectuer une agrégation sur toutes les colonnes.

Exemple:

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)

Production

[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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut