【发布时间】:2017-07-20 10:45:43
【问题描述】:
这实际上更多是关于R中这种行为的为什么和如何的问题。
我有一个向量
c("18", "68", "18-20", "22", "27", "16-18", "unkown")
我希望如果我跑了
as.factor(c("18", "68", "18-20", "22", "27", "16-18", "unkown"))
级别将遵循向量元素的顺序。相反,它们的排序就像 R 试图解释每个元素中的数字字符一样:
[1] 18 68 18-20 22 27 16-18 unkown
Levels: 16-18 18 18-20 22 27 68 unkown
如果元素是类字符,但实际上是整数/数字,我可以看到这应该如何发生。但由于18-20 等更多模棱两可的格式,我不确定 R 是如何知道订购它们的。
事实上,如果我必须分两步转换为因数(先转换为整数,然后再转换为因数):
> as.integer(c("18", "68", "18-20", "22", "27", "16-18", "unkown"))
[1] 18 68 NA 22 27 NA NA
Warning message:
NAs introduced by coercion
这很有意义,因为18-20 是一个简单的字符串。
【问题讨论】:
-
为什么你首先会遇到这个问题?排序后显示关卡更有意义。
-
?factor中解释了大部分这种行为。
标签: r