因子提供了一个简单并且紧凑的形式来处理分类(名义上的)数据。因子用”水平level”来表示所有可能的取值。如果数据集有取值个数固定的名字变量,因子就特别有用。
> g<-c("f","m","f","f","m")
> g
[1] "f" "m" "f" "f" "m"
> g<-factor(g)#因子化
> g
[1] f m f f m
Levels: f m#有几种可选的值若五个人全部是m,但是你需要两个备选值,可以用如下语法
> other.g<-factor(c("m","m","m","m","m"),levels=c("f","m"))
> other.g[1] m m m m m
Levels: f m
- 计算每个元素出现的次数,使用table()函数
> table(g)
g
f m
3 2
- table()函数还可以用于获得多个因子的交叉表
> age<-factor(c('adult','adult','adult','adult','juvenile'))
> table(age,g)g
age f m
adult 3 1
juvenile 0 1
- 计算表的边际(margin)和频率。
- 计算边际
> t<-table(age,g)
> margin.table(t,1)#按照年龄查看边际
age
adult juvenile
4 1
> margin.table(t,2)
g
f m
3 2
- 计算频率
> prop.table(t,1)#
g
age f m
adult 0.75 0.25
> prop.table(t)
#查看整个表的频率
gage f m
adult 0.6 0.2
juvenile 0.0 0.2