# 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