Factors
Table of Contents
- Overview
as.factor(x)
- Reorder factor elements
- Put classes with 0 count in
table()
- Drop unused levels from factors
Overview
- R provides both ordered and unordered factors.
sz <- c("M", "L", "S", "XL")
sz1 <- factor(sz) # Levels are sorted by alphabetical order by default
sz1
sz2 <- factor(sz, levels = c("S", "M", "L", "XL"))
sz2
sz3 <- factor(sz, ordered = FALSE)
sz3
levels(sz1)
levels(sz2)
table(sz2) # a contingency table of the counts
[1] M L S XL
Levels: L M S XL
[1] M L S XL
Levels: S M L XL
[1] M L S XL
Levels: L M S XL
[1] "L" "M" "S" "XL"
[1] "S" "M" "L" "XL"
sz2
S M L XL
1 1 1 1
as.factor(x)
reference
as.factor
coerces its argument to afactor
. It is an abbreviated (sometimes faster) form of factor.
Reorder factor elements howto
> mydata$Treatment
[1] L M H L M H
Levels: H L M
> as.integer(mydata$Treatment)
[1] 2 3 1 2 3 1
> factor(mydata$Treatment,c("L","M","H"))
[1] L M H L M H # <-- not changed
Levels: L M H # <-- changed
> as.integer(factor(mydata$Treatment,c("L","M","H")))
[1] 1 2 3 1 2 3 # <-- changed
Put classes with 0 count in table()
howto
x
1 2 5
3 3 3
To put 3 and 4 as columns:
fx
1 2 3 4 5
3 3 0 0 3
Drop unused levels from factors howto
[1] apple banana orange
Levels: apple banana orange
Note that
Levels
wasn't changed, even though x[1]
contains only apple
[1] apple
Levels: apple banana orange
Put
drop = TRUE
[1] apple
Levels: apple
Also, you can use
droplevels
as follows:
[1] apple
Levels: apple