【发布时间】:2012-07-20 04:31:14
【问题描述】:
让我们先创建一些因子:
F1 <- factor(c(1,2,20,10,25,3))
F2 <- factor(paste0(F1, " years"))
F3 <- F2
levels(F3) <- paste0(sort(F1), " years")
F4 <- factor(paste0(F1, " years"), levels=paste0(sort(F1), " years"))
然后看看他们:
> F1
[1] 1 2 20 10 25 3
Levels: 1 2 3 10 20 25
> F2
[1] 1 years 2 years 20 years 10 years 25 years 3 years
Levels: 1 years 10 years 2 years 20 years 25 years 3 years
> F3
[1] 1 years 3 years 10 years 2 years 20 years 25 years
Levels: 1 years 2 years 3 years 10 years 20 years 25 years
> F4
[1] 1 years 2 years 20 years 10 years 25 years 3 years
Levels: 1 years 2 years 3 years 10 years 20 years 25 years
首先我注意到 F2 中级别的“预期”顺序与 F1 不同。查看factor 文档可以了解原因:关卡是通过首先对输入进行排序来创建的。在 F2 的情况下,这些是字符串,其中排序会考虑长度 (?)。
让我更难理解的是 F3 和 F4 之间设置级别的区别。在 F3 中,我在创建因子后设置级别,而在 F4 中,我在创建因子时明确设置它们。在 F3 中,levels()
有人能解释一下区别吗?
【问题讨论】: