How to create a categorical variable using a data frame column in R?

If a variable is numerical then it can be converted into a categorical variable by defining the lower and upper limits. For example, age starting from 21 and ending at 25 can be converted into a category say 21−25. To convert an R data frame column into a categorical variable, we can use cut function.

Example1

y1<−sample(c("Child","Teen","Adult","Old"),20,replace=TRUE)
y2<−rpois(20,5)
df2<−data.frame(y1,y2)
df2

Output

y1 y2
1 Old 6
2 Teen 3
3 Old 2
4 Teen 5
5 Adult 6
6 Teen 6
7 Old 5
8 Adult 6
9 Child 5
10 Child 3
11 Child 9
12 Old 8
13 Teen 2
14 Teen 2
15 Teen 5
16 Adult 7
17 Adult 4
18 Teen 4
19 Adult 2
20 Child 8

Creating a categorical column for x2 in df2 −

Example

df2$y2_category<−cut(df2$y2,c(0,1,2,3,4,5,6,7,8,9,10))
df2

Output

y1 y2 y2_category
1 Old 6 (5,6]
2 Teen 3 (2,3]
3 Old 2 (1,2]
4 Teen 5 (4,5]
5 Adult 6 (5,6]
6 Teen 6 (5,6]
7 Old 5 (4,5]
8 Adult 6 (5,6]
9 Child 5 (4,5]
10 Child 3 (2,3]
11 Child 9 (8,9]
12 Old 8 (7,8]
13 Teen 2 (1,2]
14 Teen 2 (1,2]
15 Teen 5 (4,5]
16 Adult 7 (6,7]
17 Adult 4 (3,4]
18 Teen 4 (3,4]
19 Adult 2 (1,2]
20 Child 8 (7,8]
Updated on: 2026-03-11T22:50:55+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements