因子
因子最大的作用就是用来分类,计算频数和频率。
变量分类
- 名义型变量(例如广东,深圳等,彼此独立,没有顺序)
- 有序型变量 (例如病情状况good,better,best)
- 连续型变量(例如1,5,7,8等数值为连续的数量变化)
名义型变量和连续型变量在R中为因子(factor),这些分类变量的可能值称为一个水平(level),例如good,better,best都称为一个level。
由这些水平值构成的向量称为因子。
- 因子作用
计算频数
独立性检验
相关性检验
方差分析
主成分分析
因子分析
在许多绘图函数中,输入的数据也必须是因子。
table()统计频数
例如mtcars
> mtcars
> mtcars$cyl ##去除cyl这一列作为因子数据
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
> table(mtcars$cyl) ##统计频数
4 6 8
11 7 14 ##cyl这一列可以作为因子类型,其中4,6,8为因子的level。
- 可以利用factor()函数将向量转换为因子,或者说用factor()函数来定义因子。
> f <- factor(c('red','blue','yellow','grey','red'))
> f
[1] red blue yellow grey red
Levels: blue grey red yellow
这样的level是没有顺序的,可以自己手动添加顺序。
> f <- factor(c('mon','sat','fri','mon','thu','sun'), ordered = T, levels= c('mon','tue','wen','thu','fri','sat','sun'))
> f
[1] mon sat fri mon thu sun
Levels: mon < tue < wen < thu < fri < sat < sun ##次数levels就有顺序了
> fcyl <- factor(mtcars$cyl) ##将向量转换为因子
> fcyl
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
Levels: 4 6 8
此时可以分别对mtcarscyl)绘图。
> mtcars$cyl
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
> fcyl <- factor(mtcars$cyl)
> fcyl
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
Levels: 4 6 8
plot(mtcars$cyl)
plot(factor(mtcars$cyl))