Group by Count in R
Group by Count in R, The R programming language’s dplyr package has a function called group_by() that groups data frames.
Group by Count in R
In R, group by the count of multiple columns and single columns can be done in a variety of ways, including utilizing the dplyr package’s group_by() function and the aggregate() function to count the number of occurrences inside a group.
The Group_by() function by itself will not produce any results. It should be followed by the summarise() method, which should do the required action.
Let’s start by making a data frame.
df<-data.frame(Name=c('A','B','C','D','E','F','G','H','I','J','K','L'), State=c('A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12'), Sales=c(154,224,311,112,123,157,985,321,118,156,158,614)) df
Name State Sales 1 A A1 154 2 B A2 224 3 C A3 311 4 D A4 112 5 E A5 123 6 F A6 157 7 G A7 985 8 H A8 321 9 I A9 118 10 J A10 156 11 K A11 158 12 L A12 614
Groupby using aggregate() syntax:
aggregate(x, by, FUN, …, simplify = TRUE, drop = TRUE)
X: data frame
by: a collection of grouping elements that are used to group the subgroups
FUN: a method for calculating summary statistics
Approach 1: group by aggregate
The aggregate function is listed below, along with the parameter by – by which it will be aggregated – and the function length.
Groupby count of single column
aggregate(df$Sales, by=list(df$State), FUN=length)
so the grouped dataframe will be
Group.1 x 1 A1 1 2 A10 1 3 A11 1 4 A12 1 5 A2 1 6 A3 1 7 A4 1 8 A5 1 9 A6 1 10 A7 1 11 A8 1 12 A9 1
Approach 2: groupby using dplyr
summarise() uses the n() function to find the count of sales using the group_by() function, which accepts the “state” column as an argument.
library(dplyr) df %>% group_by(State) %>% summarise(count_sales = n())
so the grouped data frame will be
State count_sales <chr> <int> 1 A1 1 2 A10 1 3 A11 1 4 A12 1 5 A2 1 6 A3 1 7 A4 1 8 A5 1 9 A6 1 10 A7 1 11 A8 1 12 A9 1