假设我的数据帧中有一个变量,如下所示:
x <- rep(seq(10, 50, by = 10), each = 20) %>% factor() %>% forcats::fct_shuffle()
现在,我想按升序重新排列级别。理论上,我可以再次使用factor
并手动定义级别:
factor(x, levels = c(10, 20, 30, 40, 50))
但从长远来看,它似乎是康伯松,可能会有更多的水平。那么,如何按升序重新排列级别呢?
可能:
factor(x, levels = sort(levels(x)))
# [1] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
# [41] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
# [81] 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
# Levels: 10 20 30 40 50
带forcats
:
forcats::fct_inorder(x)
数据:
x <- rep(seq(10, 50, by = 10), each = 20) %>% factor() %>% forcats::fct_shuffle()