Comment effectuer une opération d'agrégation avec une somme groupby

Comment effectuer une opération d'agrégation avec une somme groupby
Dans ce didacticiel R, nous verrons comment effectuer les opérations d'agrégation en regroupant les données et en renvoyant la somme totale pour 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
Impression (marché)

Résultat

Maintenant, nous retournerons la somme totale d'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 trois paramètres.

Syntaxe

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

Paramètres

  1. Le premier paramètre prend la colonne variable (groupée) qui renvoie la somme des valeurs 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 prend la fonction de somme pour retourner la somme totale sur les valeurs groupées.

Exemple 1
Dans cet exemple, nous regroupons les valeurs de la colonne Market_Place et obtenons la somme des valeurs de 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 la somme des pieds carrés en groupe en regroupant Market_place
Imprimer (agrégat (Market $ Market_Squarefeet, List (Market $ Market_Place), fun = sum))

Résultat

Nous pouvons voir que les valeurs similaires (Australie, Inde et USA) dans la colonne Market_Place sont regroupées et ont renvoyé la somme 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 la somme de la colonne Market_SquareFeet regroupée 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 la somme des pieds carrés en groupe en regroupant Market_Type
Imprimer (agrégat (Market $ Market_SquareFeet, List (Market $ Market_Type), Fun = Sum))

Résultat

Nous pouvons voir que les valeurs similaires (bar, épicerie et restauration) dans la colonne Market_Type sont regroupées et renvoyaient la somme des 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 la somme des valeurs de 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 la somme 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 = SUM))

Résultat

Nous pouvons voir que les valeurs similaires des deux colonnes ont été regroupées et ont renvoyé la somme des valeurs groupées dans la colonne Market_Square Feet.

Méthode 2: dplyr

Ici, nous utilisons la fonction group_by () avec la fonction SumMarise_at () qui sont disponibles dans la bibliothèque DPLYR pour effectuer la fonction Group_By avec l'opération de somme.

Syntaxe

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

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 la somme des valeurs par groupe.
  2. Le deuxième paramètre prend la fonction de somme via la liste.

Enfin, nous résumons d'abord avec la somme et le chargez dans le 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 de la colonne Market_Place et obtenons la somme des valeurs de la colonne Market_SquareFeet regroupées par la colonne Market_Place.

bibliothèque ("dplyr")
#get la somme des pieds carrés en groupe en regroupant Market_place
Imprimer (Market%>% Group_By (Market_Place)%>%
SumMarise_at (vars (Market_SquareFeet), list (name = sum)))

Résultat

Nous pouvons voir que les valeurs similaires (Australie, Inde et USA) dans la colonne Market_Place sont regroupées et ont renvoyé la somme 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 la somme des valeurs de la colonne Market_SquareFeet regroupées par la colonne Market_Type.

bibliothèque ("dplyr")
#get la somme des pieds carrés en groupe en regroupant Market_Type
Imprimer (Market%>% Group_By (Market_Type)%>%
SumMarise_at (vars (Market_SquareFeet), list (name = sum)))

Résultat

Nous pouvons voir que les valeurs similaires (bar, épicerie et restauration) dans la colonne Market_Type sont regroupées et renvoyaient la somme des valeurs groupées dans la colonne Market_Square Feet.

Conclusion

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