logo

Groepeer op functie in R met behulp van Dplyr

De functie Group_by() behoort tot het dplyr-pakket in de programmeertaal R, dat de dataframes groepeert. De functie Group_by() alleen levert geen uitvoer op. Het moet worden gevolgd door de functie summarise() met een passende actie om uit te voeren. Het werkt vergelijkbaar met GROUP BY in SQL en draaitabel in Excel.

Syntaxis:



group_by(kol,…)

Syntaxis:

group_by(col,..) %>% samenvatting(actie)



De gebruikte dataset:

Voorbeeld_Superstore

Group_by() aan A enkele kolom

Dit is de eenvoudigste manier waarop een kolom kan worden gegroepeerd. Geef gewoon de naam van de kolom die moet worden gegroepeerd door in de functie group_by() en de actie die moet worden uitgevoerd op deze gegroepeerde kolom in de functie summarise().



Voorbeeld: Eén kolom groeperen op group_by()

derde normaalvorm

R




library>(dplyr)> df =>read.csv>(>'Sample_Superstore.csv'>)> df_grp_region = df %>%>group_by>(Region) %>%> >summarise>(total_sales =>sum>(Sales),> >total_profits =>sum>(Profit),> >.groups =>'drop'>)> View>(df_grp_region)>

>

>

Uitgang:

Group_by() op meerdere kolommen

De functie Group_by() kan ook worden uitgevoerd op twee of meer kolommen, de kolomnamen moeten in de juiste volgorde staan. De groepering vindt plaats op basis van de eerste kolomnaam in de group_by-functie en vervolgens wordt de groepering uitgevoerd op basis van de tweede kolom.

Voorbeeld: Meerdere kolommen groeperen

R




library>(dplyr)> df =>read.csv>(>'Sample_Superstore.csv'>)> df_grp_reg_cat = df %>%>group_by>(Region, Category) %>%> >summarise>(total_Sales =>sum>(Sales),> >total_Profit =>sum>(Profit),> >.groups =>'drop'>)> View>(df_grp_reg_cat)>

>

>

Uitgang:

voordelen van instagram voor persoonlijk gebruik

We kunnen ook het gemiddelde, het aantal, het minimum of het maximum berekenen door de som te vervangen in de samenvattings- of aggregatiefunctie. We zullen bijvoorbeeld de gemiddelde omzet en winst voor dezelfde groep per voorbeeld hierboven vinden.

Voorbeeld:

R




library>(dplyr)> df =>read.csv>(>'Sample_Superstore.csv'>)> df_grp_reg_cat = df %>%>group_by>(Region, Category) %>%> >summarise>(mean_Sales =>mean>(Sales),> >mean_Profit =>mean>(Profit),> >.groups =>'drop'>)> View>(df_grp_reg_cat)>

>

>

Uitgang: