Open In App

How to sum a variable by group in R?

In this article, let’s discusses how to find sum of a variable by the group in R Programming Language. 

Dataset in Use:



Table-1

Expected output:

Group by Category

Approach

Method 1: Using aggregate function

In this method we will take help of aggregate function to sum by group. Aggregate function splits the data into subsets, computes summary statistics for each, and returns the result in a convenient form.



Syntax:

aggregate(x = dataset_Name , by = group_list, FUN = any_function)  # Basic R syntax of aggregate function

Example:




GFG <- data.frame(
   Category  = c ("A","B","C","B","C","A","C","A","B"), 
   Frequency= c(9,5,0,2,7,8,1,3,7)
)
  
aggregate(x= GFG$Frequency,              
         by = list(GFG$Category),        
         FUN = sum)                      

Output:

Method 2: Using dplyr

dplyr is a package which provides a set of tools for efficiently manipulating datasets in R

    Methods in dplyr package

  • mutate() adds new variables that are functions of existing variables
  • select() picks variables based on their names.
  • filter() picks cases based on their values.
  • summarise() reduces multiple values down to a single summary.
  • arrange() changes the ordering of the rows.

Before using this package you have to install it

Program:




library("dplyr")                             
GFG <- data.frame(
   Category  = c ("A","B","C","B","C","A","C","A","B"), 
   Frequency= c(9,5,0,2,7,8,1,3,7)
)
GFG%>%                                         
 group_by(Category) %>%                        
 summarise_at(vars(Frequency),                 
              list(name = sum))

Output: 


Article Tags :