Groupby Function in R – group_by is used to group the dataframe in R. Dplyr package in R is provided with group_by() function which groups the dataframe by multiple columns with mean, sum and other functions like count, maximum and minimum.
- dplyr group by can be done by using pipe operator (%>%) or by using aggregate() function or by summarise_at() Example of each is shown below.
- Special weightage on dplyr pipe operator (%>%) is given in this section with all the groupby functions like groupby minimum & maximum, groupby count & mean, groupby sum is depicted with an example of each.
- Groupby mean in R using dplyr pipe operator.
- Groupby count in R using dplyr pipe operator.
- Groupby minimum and Groupby maximum in R using dplyr pipe operator.
- Groupby sum in R using dplyr pipe operator.
Pictographical example of a groupby sum in Dplyr
Groupby function in R with dplyr using summarize_at() function:
We will be using iris data to depict the example of group_by() function
library(dplyr) mydata2 <-iris # Groupby function for dataframe in R summarise_at(group_by(mydata2,Species),vars(Sepal.Length),funs(mean(.,na.rm=TRUE)))
Mean of Sepal.Length is grouped by Species variable.
Groupby function in R with dplyr pipe operator %>%:
library(dplyr) mydata2 = iris # Group by function for dataframe in R using pipe operator mydata2 %>% group_by(Species) %>% summarise_at(vars(Sepal.Length),funs(sum(.,na.rm=TRUE)))
Sum of Sepal.Length is grouped by Species variable with the help of pipe operator (%>%) in dplyr package. As the result we will getting the sum of all the Sepal.Lengths of each species
So the output will be
Groupby in R without dplyr using aggregate function:
In this example we will be using aggregate function in R to do group by operation as shown below
mydata2 <-iris # Group by in R using aggregate function aggregate(mydata2$Sepal.Length, by=list(Species=mydata2$Species), FUN=sum)
Sum of Sepal.Length is grouped by Species variable with the help of aggregate function in R
More Emphasis on Pipe Operator (%>%):
Groupby mean in R with dplyr pipe operator %>%:
library(dplyr) mydata2 = iris # Group by function for dataframe in R using pipe operator mydata2 %>% group_by(Species) %>% summarise_at(vars(Sepal.Length),funs(mean(.,na.rm=TRUE)))
mean of Sepal.Length is grouped by Species variable with the help of pipe operator (%>%) in dplyr package. As the result we will getting the mean Sepal.Length of each species
So the output will be
Groupby count in R with dplyr pipe operator %>%:
library(dplyr) mydata2 = iris # Group by function for dataframe in R using pipe operator mydata2 %>% group_by(Species) %>% summarise_at(vars(Sepal.Length),funs(length))
count of Sepal.Length column is grouped by Species variable with the help of pipe operator (%>%) in dplyr package. As the result we will getting the count of observations of Sepal.Length for each species
So the output will be
Groupby max in R with dplyr pipe operator %>%:
library(dplyr) mydata2 = iris # Group by function for dataframe in R using pipe operator mydata2 %>% group_by(Species) %>% summarise_at(vars(Sepal.Length),funs(max(.,na.rm=TRUE)))
max of Sepal.Length column is grouped by Species variable with the help of pipe operator (%>%) in dplyr package. As the result we will getting the max value of Sepal.Length variable for each species
So the output will be
Groupby min in R with dplyr pipe operator %>%:
library(dplyr) mydata2 = iris # Group by function for dataframe in R using pipe operator mydata2 %>% group_by(Species) %>% summarise_at(vars(Sepal.Length),funs(min(.,na.rm=TRUE)))
min of Sepal.Length column is grouped by Species variable with the help of pipe operator (%>%) in dplyr package. As the result we will getting the min value of Sepal.Length variable for each species
So the output will be
For further understanding of group_by() function in R using dplyr one can refer the dplyr documentation
Related Topics: