- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to add a new column in an R data frame with count based on factor column?
While doing the data analysis, often we have to deal with factor data and we might want to find the frequency or count of a level of factor and the other variable combination. This helps us to make comparison within and between factor levels. Therefore, we can add a new column as count to find the required frequency and it can be done by using group_by and mutate function of dplyr package.
Example
Consider the below data frame −
> Group<-rep(c("A","B","C","D","E"),times=10) > Rating<-sample(1:10,50,replace=TRUE) > df<-data.frame(Group,Rating) > head(df,20)
Output
Group Rating 1 A 1 2 B 6 3 C 2 4 D 4 5 E 9 6 A 3 7 B 5 8 C 7 9 D 1 10 E 9 11 A 9 12 B 8 13 C 9 14 D 2 15 E 6 16 A 2 17 B 2 18 C 2 19 D 2 20 E 2
> tail(df,20)
Output
Group Rating 31 A 1 32 B 7 33 C 10 34 D 8 35 E 6 36 A 8 37 B 4 38 C 4 39 D 10 40 E 4 41 A 6 42 B 4 43 C 3 44 D 7 45 E 5 46 A 1 47 B 6 48 C 7 49 D 1 50 E 6
Loading dplyr package and finding the count −
> library(dplyr) > df_with_count<-df%>%group_by(Group,Rating)%>%mutate(count=n()) > head(df_with_count,20) # A tibble: 20 x 3 # Groups: Group, Rating [17]
Output
Group Rating count <fct> <int> <int> 1 A 1 4 2 B 6 3 3 C 2 3 4 D 4 1 5 E 9 2 6 A 3 1 7 B 5 1 8 C 7 2 9 D 1 3 10 E 9 2 11 A 9 1 12 B 8 1 13 C 9 1 14 D 2 3 15 E 6 3 16 A 2 1 17 B 2 1 18 C 2 3 19 D 2 3 20 E 2 1
> tail(df_with_count,20) # A tibble: 20 x 3 # Groups: Group, Rating [17]
Output
Group Rating count <fct> <int> <int> 1 A 1 4 2 B 7 1 3 C 10 2 4 D 8 1 5 E 6 3 6 A 8 1 7 B 4 2 8 C 4 1 9 D 10 1 10 E 4 1 11 A 6 1 12 B 4 2 13 C 3 1 14 D 7 1 15 E 5 2 16 A 1 4 17 B 6 3 18 C 7 2 19 D 1 3 20 E 6 3
- Related Articles
- How to create a new column in an R data frame based on some condition of another column?
- How to find the column means of a column based on another column values that represent factor in an R data frame?
- How to select top rows of an R data frame based on groups of factor column?
- Convert a numeric column to binary factor based on a condition in R data frame
- How to add a new column to an R data frame with largest value in each row?
- How to assign a column value in a data frame based on another column in another R data frame?
- How to sort a numerical factor column in an R data frame?
- How to add a column in an R data frame with consecutive numbers?
- How to add a new column to a data frame using mutate in R?
- How to add a new column at the front of an existing R data frame?
- How to subset an R data frame based on numerical and categorical column?
- How to concatenate column values and create a new column in an R data frame?
- How to extract the factor levels from factor column in an R data frame?
- How to change row values based on column values in an R data frame?
- How to add a new column in an R data frame by combining two columns with a special character?

Advertisements