logo

Seskupit podle funkce v R pomocí Dplyr

Funkce Group_by() patří do balíčku dplyr v programovacím jazyce R, který seskupuje datové rámce. Samotná funkce Group_by() neposkytuje žádný výstup. Po něm by měla následovat funkce summarise() s příslušnou akcí, kterou je třeba provést. Funguje podobně jako GROUP BY v SQL a kontingenční tabulka v Excelu.

Syntax:



group_by(col,…)

Syntax:

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



Používaná datová sada:

Sample_Superstore

Group_by() zapnuto A jeden sloupec

Toto je nejjednodušší způsob, jak lze sloupec seskupit, stačí předat název sloupce, který má být seskupen, do funkce group_by() a akci, která se má provést s tímto seskupeným sloupcem, ve funkci summarise().



Příklad: Seskupení jednoho sloupce podle group_by()

c++ rozdělený řetězec

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

>

>

Výstup:

Group_by() na více sloupcích

Funkce Group_by() může být také provedena na dvou nebo více sloupcích, názvy sloupců musí být ve správném pořadí. Seskupení proběhne podle názvu prvního sloupce ve funkci group_by a poté se seskupení provede podle druhého sloupce.

Příklad: Seskupování více sloupců

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

>

>

Výstup:

Můžeme také vypočítat průměr, počet, minimum nebo maximum nahrazením součtu v sumární nebo agregační funkci. Nalezneme například průměrné tržby a zisky pro stejný příklad skupiny podle výše.

Příklad:

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

>

kontrola java je nulová
>

Výstup: