Groupby mean in R

Groupby mean in R can be accomplished by aggregate() or group_by() function. let’s  see how to

  • Groupby mean of single column in R
  • Groupby mean of multiple columns in R

First let’s create a dataframe

df1= data.frame(Name=c('James','Paul','Richards','Marico','Samantha','Ravi','Raghu','Richards','George','Ema','Samantha','Catherine'),
    State=c('Alaska','California','Texas','North Carolina','California','Texas','Alaska','Texas','North Carolina','Alaska','California','Texas'),
    Sales=c(14,24,31,12,13,7,9,31,18,16,18,14))
df1

df1 will be

groupby mean in R 1

 

Groupby mean of single column in R

Method 1:

Aggregate function along with parameter by – by which it is to be grouped and function mean is mentioned as shown below

# Groupby mean of single column

aggregate(df1$Sales, by=list(df1$State), FUN=mean)

so the grouped dataframe will be

groupby mean in R 2a

Method 2: groupby using dplyr

library(dplyr)
df1 %>% group_by(State) %>% summarise(Mean_sales = mean(Sales))

so the grouped dataframe will be

groupby mean in R 2b

 

 

Groupby mean of multiple column in R

Method 1:

Aggregate function which is grouped by state and name, along with function mean is mentioned as shown below

# Groupby mean of multiple columns

aggregate(df1$Sales, by=list(df1$State,df1$Name), FUN=mean)

so the grouped dataframe will be

groupby mean in R 3a

Method 2: groupby using dplyr

library(dplyr)
df1 %>% group_by(State,Name) %>% summarise(Mean_sales = mean(Sales))

so the grouped dataframe will be

groupby mean in R 3b