1. 创建因子
factor_name <- factor(vector, levels=, labels=, ordered=)
vector
: 用来指定生成因子的顺序
levels
: 用来指定前面vector
中生成因子后的levels
和其顺序,函数会自动识别,但为了和之后的labels
联用,这里要明确指定
labels=
: 给以上的levels
赋予新的名称
ordered=
: 逻辑词,设置是否是有序因子
1.1 创建有序因子
> sex <- factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)
> sex
[1] female male female female male
Levels: female < male
> is.ordered(sex)
[1] TRUE
1.2 创建无序因子
> sex <- factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=FALSE)
> sex
[1] female male female female male
Levels: female male
> is.ordered(sex)
[1] FALSE
> ordered(sex)
[1] female male female female male
Levels: female < male
is.ordered()
用来检测是否是有序因子
ordered()
用来将无序因子有序化,出现在后面的因子其level
较高
2. 查看因子是否有序
is.ordered()
3. 将因子有序化
factor_name_new <- ordered(factor_name, levels=)
levels=
: 向量,用来指定因子的顺序;其中的levels
总数必须和因子中的相同,否则缺失的因子中level
将会办成NA
;此向量中的level
从前到后,顺序递增
将无序因子变为有序因子,并指定因子的顺序
> kk <- as.factor(c(2,4,7,1,3))
> kk
[1] 2 4 7 1 3
Levels: 1 2 3 4 7
> is.ordered(kk)
[1] FALSE
> kk <- ordered(kk, levels=c(7,3,4,1,2))
> kk
[1] 2 4 7 1 3
Levels: 7 < 3 < 4 < 1 < 2
> is.ordered(kk)
[1] TRUE
4. gl()
用来创建因子
gl(n=, k=, length=, labels=, ordered=)
n=
: 因子的level
个数k=
: 每个level
重复数length=
: 因子长度,默认为n*k
,可以指定比n*k
小或者大;如果比n*k
小,则从前到后截取此长度的因子;如果比n*k
大,则会重复因子直到达到需要的长度labels=
: 每个level
对应的标签ordered=
: 是否是有序因子,默认为FALSE
网友评论