#Factors are used to categorize data
#Create a factor
my_factor <- factor(c('Fruits', 'Foods', 'Foods', 'Fruits', 'Birds'))
my_factor
## [1] Fruits Foods Foods Fruits Birds
## Levels: Birds Foods Fruits
#check levels
levels(my_factor)
## [1] "Birds" "Foods" "Fruits"
#Levels argument inside
my_levels_factor <- factor(c('Fruits', 'Foods', 'Foods', 'Fruits', 'Birds'), levels=c('Fruits', 'Foods', 'Birds', 'Other'))
levels(my_levels_factor)
## [1] "Fruits" "Foods" "Birds" "Other"
#length
length(my_levels_factor)
## [1] 5
#Access factors
my_factor[3]
## [1] Foods
## Levels: Birds Foods Fruits
#change item value
my_factor_item <- factor(c('Fruits', 'Foods', 'Foods', 'Fruits', 'Birds'))
my_factor_item[3] <- 'Birds'
my_factor_item
## [1] Fruits Foods Birds Fruits Birds
## Levels: Birds Foods Fruits
my_factor_item[4] <- 'Fish'
## Warning in `[<-.factor`(`*tmp*`, 4, value = "Fish"): invalid factor level, NA
## generated
#Add item
my_factor_change <- factor(
c('Fruits', 'Foods', 'Foods', 'Fruits', 'Birds'),
levels = c('Fruits', 'Foods', 'Birds', 'Fish')
)
my_factor_change[4] <- 'Fish'
my_factor_change
## [1] Fruits Foods Foods Fish Birds
## Levels: Fruits Foods Birds Fish