- 在线时间
- 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)和有序变量,这类变量不能用来计算而只能用来分类或者计数。/ o; s- @4 s: [
因子表示分类变量,有序因子表示有序变量。7 A5 @8 | H1 v" T3 K0 Y0 w; q9 M
生成因子数据对象的函数是factor(),语法是factor(data, levels, labels, ...),其中data是数据,levels是因子水平向量,labels是因子的
# h C3 K+ T# h" h: }, R4 n
" b3 ]% A* g# o0 Q. ~标签向量。2 ~# F1 q& S/ `7 L6 y2 A
1、创建一个因子。
% Z+ y) K6 {. ]+ E! r" | 例1:colour <- c('G', 'G', 'R', 'Y', 'G', 'Y', 'Y', 'R', 'Y'); ]: a& r5 W- P& Z7 `
col <- factor(colour)
! Q: {4 M4 h/ c' U/ rcol1 <- factor(colour, levels = c('G', 'R', 'Y'), labels = c('Green', 'Red', 'Yellow')) #labels的内容替换colour相应位置对应levels的内容4 L9 v- z7 E: [
col2 <- factor(colour, levels = c('G', 'R', 'Y'), labels = c('1', '2', '3'))6 d- X1 {, s) n* i. q) H3 Z- f
col_vec <- as.vector(col2) #转换成字符向量
) H! z) D0 [( T2 ncol_num <- as.numeric(col2) #转换成数字向量
4 v4 A& {, v% D3 z+ M/ W, p8 @col3 <- factor(colour, levels = c('G', 'R'))7 x; _! W% i' d+ Y6 l! Y. n" l
. }/ F3 `1 `: I1 [, Z2、创建一个有序因子。: z3 N! x5 N% O
例1:score <- c('A', 'B', 'A', 'C', 'B')6 L4 ?# K; B0 p( V8 y7 v
score1 <- ordered(score, levels = c('C', 'B', 'A')); score1
4 e2 [5 O1 v6 m# Z3 p$ m6 y1 ^8 q2 ]: J$ p
3、用cut()函数将一般的数据转换成因子或有序因子。
6 I0 Q- q7 c9 i; r$ F2 m0 ^' S. ? 例1:exam <- c(98, 97, 52, 88, 85, 75, 97, 92, 77, 74, 70, 63, 97, 71, 98, ' Q# t% X$ z" w3 A. w$ X) p
65, 79, 74, 58, 59, 60, 63, 87, 82, 95, 75, 79, 96, 50, 88)
3 W' D) J A, ?2 b5 e6 Z7 y# H( ^exam1 <- cut(exam, breaks = 3) #切分成3组' W/ m4 @+ v- R8 j' f# x4 c6 X
exam2 <- cut(exam, breaks = c(0, 59, 69, 79, 89, 100)) #切分成自己设置的组
' q6 w% K/ |0 {+ e8 Tattr(exam1, 'levels'); attr(exam2, 'levels'); attr(exam2, 'class')
& R d% ~ g8 v9 p8 \7 p) Zordered(exam2, labels = c('bad', 'ok', 'average', 'good', 'excellent')) #一个有序因子2 j/ N' ]5 @+ z @. B, m, X! L$ ]
; a+ m, U! H p, X9 F
; p; `2 h* n8 P4 y |
zan
|