logo

Gruppér efter funktion i R ved hjælp af Dplyr

Group_by()-funktionen hører til dplyr-pakken i programmeringssproget R, som grupperer datarammerne. Group_by()-funktionen alene vil ikke give noget output. Den skal efterfølges af summarise()-funktionen med en passende handling, der skal udføres. Det fungerer på samme måde som GROUP BY i SQL og pivottabel i excel.

Syntaks:



group_by(col,...)

Syntaks:

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



Datasættet i brug:

Eksempel_Superstore

Group_by() on -en enkelt kolonne

Dette er den enkleste måde, hvorpå en kolonne kan grupperes, bare giv navnet på kolonnen, der skal grupperes, i group_by()-funktionen og handlingen, der skal udføres på denne grupperede kolonne i summarise()-funktionen.



Eksempel: Gruppering af enkelt kolonne efter group_by()

statisk i c

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å flere kolonner

Group_by()-funktionen kan også udføres på to eller flere kolonner, kolonnenavnene skal være i den rigtige rækkefølge. Grupperingen vil ske i henhold til det første kolonnenavn i group_by-funktionen og derefter vil grupperingen blive udført i henhold til den anden kolonne.

Eksempel: Gruppering af flere kolonner

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

>

>

Produktion:

Vi kan også beregne middelværdi, antal, minimum eller maksimum ved at erstatte summen i opsummerings- eller aggregeringsfunktionen. For eksempel vil vi finde gennemsnitlig salg og fortjeneste for den samme group_by eksempel ovenfor.

Eksempel:

R




pseudokode java

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: