logo

Grupați după funcție în R folosind Dplyr

Funcția Group_by() aparține pachetului dplyr din limbajul de programare R, care grupează cadrele de date. Numai funcția Group_by() nu va da nicio ieșire. Ar trebui să fie urmată de funcția summarise() cu o acțiune adecvată de efectuat. Funcționează similar cu GROUP BY în SQL și cu tabelul pivot în Excel.

Sintaxă:



group_by(col,…)

Sintaxă:

group_by(col,..) %>% sumar(acțiune)



Setul de date în uz:

Sample_Superstore

Group_by() activat A o singură coloană

Acesta este cel mai simplu mod prin care o coloană poate fi grupată, trebuie doar să treceți numele coloanei de grupat în funcția group_by() și acțiunea care trebuie efectuată pe această coloană grupată în funcția summarise().



Exemplu: Gruparea unei singure coloane după group_by()

altfel dacă bash

R




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

>

>

Ieșire:

Group_by() pe mai multe coloane

Funcția Group_by() poate fi efectuată și pe două sau mai multe coloane, numele coloanelor trebuie să fie în ordinea corectă. Gruparea se va face conform numelui primei coloane din funcția group_by și apoi gruparea se va face conform celei de-a doua coloane.

Exemplu: Gruparea mai multor coloane

R




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

>

>

Ieșire:

De asemenea, putem calcula medie, numărare, minim sau maxim prin înlocuirea sumei în funcția de rezumat sau de agregare. De exemplu, vom găsi vânzări medii și profituri pentru același grup_prin exemplu de mai sus.

Exemplu:

R

Oracle sql nu este egal




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

>

>

Ieșire: