Removing Levels from a Factor in R Programming – droplevels() Function
Last Updated :
05 Jun, 2020
droplevels() function in R programming used to remove unused levels from a Factor.
Syntax:
# For vector object
droplevels(x, exclude = if(anyNA(levels(x))) NULL else NA, …)
# For data frame object
droplevels(x, except, exclude)
Parameter values:
x represents object from which unused level has to be dropped
exclude represents factor levels which should be excluded even if present
except represents indices of columns from which levels should not be dropped
Example 1:
x < - c( 1 , 3 , 4 , 8 , 1 , 5 , 4 , 4 , 5 , 6 )
f < - factor(x)
cat( "Factor object before deleting value:\n" )
print (f)
cat( "\n" )
f < - f[ - 2 ]
cat( "Factor object after deleting value:\n" )
print (f)
cat( "\n" )
cat( "After dropping unused level:\n" )
new_f < - droplevels(f)
print (new_f)
|
Output:
Factor object before deleting value:
[1] 1 3 4 8 1 5 4 4 5 6
Levels: 1 3 4 5 6 8
Factor object after deleting value:
[1] 1 4 8 1 5 4 4 5 6
Levels: 1 3 4 5 6 8
After dropping unused level:
[1] 1 4 8 1 5 4 4 5 6
Levels: 1 4 5 6 8
Example 2:
x < - factor(c( 7 , 3 , 3 , 7 , 5 , 5 , 1 ))
y < - factor(c( 1 , 1 , 1 , 4 , 4 , 4 , 2 ))
z < - c( 1 , 5 , 3 , 2 , 9 , 4 , 7 )
df < - data.frame(x, y, z)
df < - df[ 1 : 6 , ]
str (df)
cat( "\n" )
df_drop < - droplevels(df)
str (df_drop)
|
Output:
'data.frame': 6 obs. of 3 variables:
$ x: Factor w/ 4 levels "1", "3", "5", "7": 4 2 2 4 3 3
$ y: Factor w/ 3 levels "1", "2", "4": 1 1 1 3 3 3
$ z: num 1 5 3 2 9 4
'data.frame': 6 obs. of 3 variables:
$ x: Factor w/ 3 levels "3", "5", "7": 3 1 1 3 2 2
$ y: Factor w/ 2 levels "1", "4": 1 1 1 2 2 2
$ z: num 1 5 3 2 9 4
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...