- 在线时间
- 27 小时
- 最后登录
- 2013-5-20
- 注册时间
- 2012-11-2
- 听众数
- 15
- 收听数
- 1
- 能力
- 0 分
- 体力
- 3870 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 1335
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 347
- 主题
- 320
- 精华
- 0
- 分享
- 0
- 好友
- 6
升级   33.5% TA的每日心情 | 奋斗 2013-6-15 16:58 |
|---|
签到天数: 24 天 [LV.4]偶尔看看III
 群组: 第四届数学中国美赛实 |
|
因子(factor)和有序因子(ordered factor) 因子用来存储类别变量(categorical variables)和有序变量,这类变量不能用来计算而只能用来分类或者计数。
7 n7 r* u' t% V因子表示分类变量,有序因子表示有序变量。* K2 G6 S( W2 [' h9 @% e0 S$ T. a5 d
生成因子数据对象的函数是factor(),语法是factor(data, levels, labels, ...),其中data是数据,levels是因子水平向量,labels是因子的* [/ i0 V* ?3 i. D
% u5 r+ V z U/ w: h% W
标签向量。
3 x) L1 d/ s8 x& p8 n4 ]" T7 w# Z$ A1、创建一个因子。
6 I3 e4 x8 j& c, }$ h. x9 l 例1:colour <- c('G', 'G', 'R', 'Y', 'G', 'Y', 'Y', 'R', 'Y'), q% U8 l9 U1 z2 U
col <- factor(colour)5 S4 F: z* a7 B( s& L5 [
col1 <- factor(colour, levels = c('G', 'R', 'Y'), labels = c('Green', 'Red', 'Yellow')) #labels的内容替换colour相应位置对应levels的内容
6 v! i: K3 ~5 f8 Ucol2 <- factor(colour, levels = c('G', 'R', 'Y'), labels = c('1', '2', '3'))! u2 {& H% F$ W; @. {8 {
col_vec <- as.vector(col2) #转换成字符向量: J I" g4 M, w& \
col_num <- as.numeric(col2) #转换成数字向量1 L( H' e1 w5 [0 K
col3 <- factor(colour, levels = c('G', 'R'))% @" t7 i0 B6 d1 z G x
; u2 ?6 J7 X" _* _' J" C
2、创建一个有序因子。
6 L5 W: j, Y# \2 @+ T+ W 例1:score <- c('A', 'B', 'A', 'C', 'B')
$ z5 L$ Z8 z0 S5 M4 u, J- e0 ^0 Ascore1 <- ordered(score, levels = c('C', 'B', 'A')); score1 k7 L( _; L8 ~
- j: b9 q7 _3 ]6 l
3、用cut()函数将一般的数据转换成因子或有序因子。; [" U+ `6 q$ M x
例1:exam <- c(98, 97, 52, 88, 85, 75, 97, 92, 77, 74, 70, 63, 97, 71, 98, p' U( H* O' Q( F h& J
65, 79, 74, 58, 59, 60, 63, 87, 82, 95, 75, 79, 96, 50, 88)2 }, H# r' y# `; z b5 U
exam1 <- cut(exam, breaks = 3) #切分成3组
5 D$ h" j9 C" }+ Y8 Pexam2 <- cut(exam, breaks = c(0, 59, 69, 79, 89, 100)) #切分成自己设置的组; ]( A3 R+ @7 L" O9 m' \
attr(exam1, 'levels'); attr(exam2, 'levels'); attr(exam2, 'class')1 I) B8 @0 q/ ]0 V- M
ordered(exam2, labels = c('bad', 'ok', 'average', 'good', 'excellent')) #一个有序因子$ v4 g& j0 o; F; f$ d3 P8 v
# k6 ^- P! S+ B6 V3 U% u" M" z! d" y
' {2 w' l( M+ x9 @6 v |
zan
|