Comment effectuer une opération d'agrégation avec Groupby Max

Comment effectuer une opération d'agrégation avec Groupby Max
Dans ce didacticiel R, nous verrons comment effectuer des opérations d'agrégation en regroupant les données et en renvoyant les valeurs maximales dans les lignes groupées.

Cette opération doit être effectuée sur un dataframe. Créons le dataframe avec sept lignes et cinq colonnes.

#Create un marché de dataframe qui a 7 lignes et 5 colonnes.
Marché = données.cadre (Market_ID = C (1,2,1,4,3,4,5), Market_Name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_Place = C ('India', 'USA', 'Inde', 'Australie', 'USA',
«Inde», «Australie»), Market_Type = C («Épicerie», «Bar», «Épicerie», «Restaurent»,
«Épicerie», «bar», «épicerie»), Market_Squarefeet = C (120 342 220,110,342,220,110))
#Display le marché DataFrame

Résultat

Maintenant, nous retournerons les valeurs maximales dans une colonne en regroupant les valeurs similaires dans une autre colonne.

Méthode 1: agrégat ()

Ici, nous utilisons la fonction agrégate () qui prend les trois paramètres.

Syntaxe

agrégat (dataframe_object $ groupé, liste (dataframe_object $ groupement), fun = max)

Paramètres

  1. Le premier paramètre prend la colonne variable (groupée) qui renverra les valeurs maximales par groupe.
  2. Le deuxième paramètre prend une colonne unique ou multiple (regroupement) dans une liste telle que les valeurs sont regroupées dans ces colonnes.
  3. Le troisième paramètre prend le plaisir, ce qui prendra la fonction maximale pour renvoyer les valeurs maximales dans les valeurs groupées.

Exemple 1
Dans cet exemple, nous regroupons les valeurs dans la colonne Market_Place et obtenons les valeurs maximales dans la colonne Market_SquareFeet regroupées par la colonne Market_Place.

#Create un marché de dataframe qui a 7 lignes et 5 colonnes.
Marché = données.cadre (Market_ID = C (1,2,1,4,3,4,5), Market_Name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_Place = C ('India', 'USA', 'Inde', 'Australie', 'USA',
«Inde», «Australie»), Market_Type = C («Épicerie», «Bar», «Épicerie», «Restaurent»,
«Épicerie», «bar», «épicerie»), Market_Squarefeet = C (120 342 220,110,342,220,110))
#get le maximum des pieds carrés en groupe en regroupant Market_place
Imprimer (agrégat (Market $ Market_SquareFeet, List (Market $ Market_Place), Fun = Max))

Résultat

Nous pouvons voir que les valeurs similaires (Australie, Inde et USA) dans la colonne Market_place sont regroupées et renvoient le maximum des valeurs groupées dans la colonne Market_Square Feet.

Exemple 2
Dans cet exemple, nous regroupons les valeurs dans la colonne Market_Type et obtenons les valeurs maximales dans la colonne Market_SquareFeet regroupées par la colonne Market_Type.

#Create un marché de dataframe qui a 7 lignes et 5 colonnes.
Marché = données.cadre (Market_ID = C (1,2,1,4,3,4,5), Market_Name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_Place = C ('India', 'USA', 'Inde', 'Australie', 'USA',
«Inde», «Australie»), Market_Type = C («Épicerie», «Bar», «Épicerie», «Restaurent»,
«Épicerie», «bar», «épicerie»), Market_Squarefeet = C (120 342 220,110,342,220,110))
#get le maximum des pieds carrés en groupe en regroupant Market_Type
Imprimer (agrégat (Market $ Market_Squarefeet, List (Market $ Market_Type), Fun = Max))

Résultat

Nous pouvons voir que les valeurs similaires (bar, épicerie et restauration) dans la colonne Market_Type sont regroupées et renvoient le maximum de valeurs groupées dans la colonne Market_Square Feet.

Exemple 3
Dans cet exemple, nous regroupons les valeurs dans les colonnes Market_Type et Market_Place et obtenons les valeurs maximales dans la colonne Market_SquareFeet regroupées par les colonnes Market_Type et Market_Place.

#Create un marché de dataframe qui a 7 lignes et 5 colonnes.
Marché = données.cadre (Market_ID = C (1,2,1,4,3,4,5), Market_Name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_Place = C ('India', 'USA', 'Inde', 'Australie', 'USA',
«Inde», «Australie»), Market_Type = C («Épicerie», «Bar», «Épicerie», «Restaurent»,
«Épicerie», «bar», «épicerie»), Market_Squarefeet = C (120 342 220,110,342,220,110))
#get le maximum des pieds carrés en groupe en regroupant Market_place et Market_Type
Imprimer (agrégat (Market $ Market_SquareFeet, List (Market $ Market_Place, Market $ Market_Type), Fun = Max))

Résultat

Nous pouvons voir que les valeurs similaires de deux colonnes ont été regroupées et renvoient les valeurs maximales dans chaque valeur groupée dans la colonne Market_Square Feet.

Méthode 2: dplyr

Ici, nous utilisons le groupe_by avec SumMarise_at () qui sont disponibles dans la bibliothèque DPLYR pour effectuer le groupe Group_By avec MAX.

Syntaxe

dataframe_object%>% group_by (groupement)%>% summarise_at (varS (groupé), list (name = max)))

Où:

  1. group_by () prend un paramètre, je.e. colonne de regroupement
  2. SumMarise_at () prend deux paramètres:
  1. Le premier paramètre prend la colonne variable (groupée) qui renvoie les valeurs maximales par groupe.
  2. Le deuxième paramètre prend la fonction maximale via la liste.

Enfin, nous résumons d'abord avec max et le chargeons en groupe. Ensuite, nous chargeons la colonne groupée dans l'objet DataFrame.

Il renvoie un tibble.

Exemple 1
Dans cet exemple, nous regroupons les valeurs dans la colonne Market_Place et obtenons les valeurs maximales dans la colonne Market_SquareFeet regroupées par la colonne Market_Place.

bibliothèque ("dplyr")
#get le maximum des pieds carrés en groupe en regroupant Market_place
Imprimer (Market%>% Group_By (Market_Place)%>%
SumMarise_at (vars (Market_Squarefeet), list (name = max))))

Résultat

Nous pouvons voir que les valeurs similaires (Australie, Inde et USA) dans la colonne Market_Place sont regroupées et renvoient le maximum de chaque valeur groupée dans la colonne Market_Square Feet.

Exemple 2
Dans cet exemple, nous regroupons les valeurs dans la colonne Market_Type et obtenons les valeurs maximales dans la colonne Market_SquareFeet groupées par colonne Market_Type.

bibliothèque ("dplyr")
#get le maximum des pieds carrés en groupe en regroupant Market_Type
Imprimer (Market%>% Group_By (Market_Type)%>%
SumMarise_at (vars (Market_Squarefeet), list (name = max))))

Résultat

Nous pouvons voir que les valeurs similaires (bar, épicerie et restauration) dans la colonne Market_Type sont regroupées et renvoient les valeurs maximales dans chaque valeur groupée dans la colonne Market_Square Feet.

Conclusion

Il est possible de regrouper les colonnes simples ou multiples avec d'autres colonnes numériques pour renvoyer la valeur maximale de la colonne numérique à l'aide de la fonction agrégate (). De même, nous pouvons utiliser la fonction groupBy () avec la fonction SumMarise_at () pour regrouper les valeurs similaires dans une colonne et renvoyer les valeurs maximales des valeurs groupées par rapport à une autre colonne.