logo

Gruppera efter funktion i R med Dplyr

Group_by()-funktionen tillhör paketet dplyr i programmeringsspråket R, som grupperar dataramarna. Enbart funktionen Group_by() kommer inte att ge någon utdata. Den bör följas av summarise()-funktionen med en lämplig åtgärd att utföra. Det fungerar på samma sätt som GROUP BY i SQL och pivottabell i excel.

Syntax:



group_by(col,...)

Syntax:

group_by(col,..) %>% summarise(action)



Datauppsättningen som används:

Exempel_Superstore

Group_by() på a enda kolumn

Detta är det enklaste sättet på vilket en kolumn kan grupperas, skicka bara namnet på kolumnen som ska grupperas i funktionen group_by() och åtgärden som ska utföras på denna grupperade kolumn i summarise()-funktionen.



Exempel: Gruppera en kolumn efter group_by()

java sträng längd

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

>

>

Produktion:

Group_by() på flera kolumner

Group_by()-funktionen kan också utföras på två eller flera kolumner, kolumnnamnen måste vara i rätt ordning. Grupperingen kommer att ske enligt det första kolumnnamnet i group_by-funktionen och sedan kommer grupperingen att göras enligt den andra kolumnen.

Exempel: Gruppera flera kolumner

R




r på c-språk
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)>

>

>

Produktion:

Vi kan också beräkna medelvärde, antal, minimum eller maximum genom att ersätta summan i summerings- eller aggregeringsfunktionen. Till exempel hittar vi genomsnittlig försäljning och vinst för samma group_by exemplet ovan.

Exempel:

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

>

>

Produktion: