Section 8 Factor: Operation

8.1 Operation on Factor

Example vector: x <- rep(c('L','M','H'), length=30)

Function Explanation Example
relevel Set the first (reference) level of a factor relevel(x, ref=High)
factor Convert a vector to factor, re-order, re-label levels of a factor factor(x=x, levels=c('L','M','H'), labels=c('Low','Med','High'))
as.numeric Convert the factor levels to numeric values as.numeric(x)
is.factor Is a vector factor is.factor(x)
:, interaction Cross-classify factors interaction(x,y)
gl Make a factor by generating equal sized levels gl(n=3, k=10, labels=c('Low','Med','High'), ordered=FALSE)
cut Make a factor by cutting a vector a given break points cut(x=c(1:20), breaks=c(5,10,15), inc=TRUE, right=FALSE)

8.2 Example

x <- c(rep('L',times=4), rep('M',times=10), rep('H',times=6))
fx <- factor(x=x, levels=c('L','M','H'), labels=c('Low','Med','High'))

levels(fx)
table(fx)

f1x <- factor(x=x, levels=c('M','H','L'))
levels(f1x)
table(f1x)

f2x <- relevel(x=f1x, ref='H')
levels(f2x)
table(f2x)


f3x <- factor(x=x, labels=c('Obese','Underwt','Normal'))
levels(f3x)
table(f3x)

f4x <- factor(x=x, 
              levels=c('L','M','H'),
              labels=c('Underwt','Normal','Obese'))
levels(f4x)
table(f4x)


z <- rep(c('T1','T2'), length=20)
fz <- as.factor(z)

levels(fx)
levels(fz)
fx:fz
interaction(fz,fx)

levels(fx)
fm <- relevel(fx, ref='High')
levels(fm)

fx <- gl(n=3, k=10, labels=c('Low','Med','High'), ordered=FALSE)
fx
table(fx)

cut(x=c(1:20), breaks=c(5,10,15), inc=TRUE, right=FALSE)

s <- sample(1:100, size=20, replace=TRUE)
gs <- cut(s, breaks=quantile(s), inc=TRUE)
table(gs)