首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >forcats::as_factor可以返回有序因子吗?

forcats::as_factor可以返回有序因子吗?
EN

Stack Overflow用户
提问于 2017-08-31 11:55:31
回答 1查看 301关注 0票数 5

来自forcatsas_factor可以返回有序因子吗?这似乎是一个缺失的功能,即使不是,尽管我还没有在GitHub page上看到它被报告为一个问题。

我试过了:

代码语言:javascript
复制
y <- forcats::as_factor(c("a", "z", "g"), ordered = TRUE)
is.ordered(y)
# FALSE

如果我做不到,那么这样做有没有潜在的危险:

代码语言:javascript
复制
y <- ordered(forcats::as_factor(c("a", "z", "g")))

或者这样做会更好:

代码语言:javascript
复制
y <- factor(c("a", "z", "g"), levels = unique(c("a", "z", "g")), ordered = TRUE))
EN

回答 1

Stack Overflow用户

发布于 2017-08-31 12:59:49

看起来这确实是一种意想不到的行为。forcats::as_factor强制它按出现的顺序排序,但不知何故没有设置标志。但是将它与base::factor结合使用,不需要显式地指定顺序,只需设置标志就可以了。

代码语言:javascript
复制
y <- forcats::as_factor(c("a", "z", "g"))
y
[1] a z g
Levels: a z g

is.ordered(y)
[1] FALSE

k <- factor(y, c("a","z","g"), ordered = TRUE)
k
[1] a z g
Levels: a < z < g

is.ordered(k)
[1] TRUE

k2 <- factor( y, ordered = TRUE)
k2
[1] a z g
Levels: a < z < g

is.ordered(k2)
[1] TRUE

k3 <- factor(forcats::as_factor(c("a","g","z")), ordered = TRUE)
k3
[1] a g z
Levels: a < g < z

is.ordered(k3)
[1] TRUE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45972983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档