The goal of this tutorial is to learn how to add empty levels to a factor.
# In this tutorial we are going to use the iris dataset
data("iris")
str(iris)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
# We can know how many of each level do we have in the Species factor
str(iris$Species)
## Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
table(iris$Species)
##
## setosa versicolor virginica
## 50 50 50
# We can add a new level to the factor
iris$Species <- factor(iris$Species, levels = c(levels(iris$Species), "Echeveria"))
# Now we check the new level
str(iris$Species)
## Factor w/ 4 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
table(iris$Species)
##
## setosa versicolor virginica Echeveria
## 50 50 50 0
# Another way to add a new level to a factor could be
# Adding a level at the n+1 position
levels(iris$Species)[length(levels(iris$Species))+1] <- "Aloe Vera"
# Now we check the new level
str(iris$Species)
## Factor w/ 5 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
table(iris$Species)
##
## setosa versicolor virginica Echeveria Aloe Vera
## 50 50 50 0 0
In this tutorial we have learnt different ways to add an empty level to a factor.