Cut() Function in R
Last Updated :
19 Dec, 2023
In this article, we will discuss how to Divide a Vector into Ranges in R Programming Languagenusing cut() Function.
cut() function in R
cut()
function in R Programming Language is used to divide a numeric vector into different ranges. It is particularly useful when we want to convert a numeric variable into a categorical one by dividing it into intervals or bins.
Syntax:
cut.default(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3)
Parameters:
x: Numeric Vector
break: break points of the vector
labels: labels for levels
include.lowest: Boolean value to include lowest break value
right: Boolean value to close interval on the right
dig.lab: Used when labels are not provided
Create a numeric vector and apply cut() Function
R
ages <- c (18, 25, 35, 40, 50, 60, 70, 80, 90)
age_groups <- cut (ages, breaks = c (0, 25, 50, 75, 100),
labels = c ( "18-25" , "26-50" , "51-75" , "76-100" ))
print ( table (age_groups))
|
Output:
age_groups
18-25 26-50 51-75 76-100
2 3 2 2
Cut Vector Using Specific Break Points and Labels
R
ages <- c (18, 25, 35, 40, 50, 60, 70, 80, 90)
age_groups <- cut (ages, breaks = c (0, 25, 50, 75, 100),
labels = c ( "18-25" , "26-50" , "51-75" , "76-100" ))
result_df <- data.frame (AgeGroup = levels (age_groups), Count = table (age_groups))
print (result_df)
|
Output:
AgeGroup Count.age_groups Count.Freq
1 18-25 18-25 2
2 26-50 26-50 3
3 51-75 51-75 2
4 76-100 76-100 2
Create a data frame and apply cut() Function
R
age <- c (40, 49, 48, 40, 67, 52, 53)
salary <- c (103200, 106200, 150200, 10606, 10390, 14070, 10220)
gender <- c ( "male" , "male" , "transgender" ,
"female" , "male" , "female" , "transgender" )
employee<- data.frame (age, salary, gender)
wfact = cut (employee$age, 3, labels = c ( 'Young' , 'Medium' , 'Aged' ))
table (wfact)
|
Output:
wfact
Young Medium Aged
4 2 1
The cut()
function is versatile and can be applied to various scenarios where binning or categorization of continuous data is needed.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...