logo

Zoskupiť podľa funkcie v R pomocou Dplyr

Funkcia Group_by() patrí do balíka dplyr v programovacom jazyku R, ktorý zoskupuje dátové rámce. Samotná funkcia Group_by() neposkytuje žiadny výstup. Po ňom by mala nasledovať funkcia summarise() s príslušnou akciou, ktorú treba vykonať. Funguje podobne ako GROUP BY v SQL a kontingenčná tabuľka v Exceli.

Syntax:



group_by(stĺpec,…)

Syntax:

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



Používaný súbor údajov:

Sample_Superstore

Group_by() zapnuté a jeden stĺpec

Toto je najjednoduchší spôsob, ako možno stĺpec zoskupiť, stačí zadať názov stĺpca, ktorý sa má zoskupiť, do funkcie group_by() a akciu, ktorá sa má vykonať s týmto zoskupeným stĺpcom, vo funkcii summarise().



Príklad: Zoskupenie jedného stĺpca podľa group_by()

algoritmus mergesort

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ýkon:

Group_by() vo viacerých stĺpcoch

Funkciu Group_by() je možné vykonať aj na dvoch alebo viacerých stĺpcoch, názvy stĺpcov musia byť v správnom poradí. Zoskupenie sa uskutoční podľa názvu prvého stĺpca vo funkcii group_by a potom sa uskutoční zoskupenie podľa druhého stĺpca.

Príklad: Zoskupenie viacerých stĺpcov

R




IMPS hry pre android
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ýkon:

Môžeme tiež vypočítať priemer, počet, minimum alebo maximum nahradením súčtu v sumárnej alebo agregačnej funkcii. Napríklad nájdeme priemerné tržby a zisky pre rovnakú skupinu podľa príkladu vyššie.

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

>

>

Výkon: