R中可以处理因子的一切-forcats包(一)

forcats包是tidyverse生态中的一个,所以直接加载tidyverse就好了哈

library(tidyverse)

rm(list = ls()) 
options(stringsAsFactors = T)

#构建因子,默认按照字母顺序
months <- c("Dec","Apr","Jan","Mar")
months <- factor(months);months
因子默认按照字母顺序
#设定因子水平
month_levels <- c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
months1 <- factor(months, levels = month_levels)
months1
可手动设定因子水平
#不在你顺序中的值变成NA
x1 <- c("Apr","Mar","Jan","Dee")
factor(x1, levels = month_levels)
因子是已经分类变量的集合体
#按照因子第一次出现的顺序构建水平
months %>% factor() %>% fct_inorder()
按照第一次出现的顺序排序因子水平
f <- factor(c("a", "b", "c", "d"), 
            levels = c("b", "c", "d", "a"))
## 把c,d放在地第1位,第2位
fct_relevel(f, c("c", "d"))
fct_relevel默认吧后面参数的水平放在最前面
# 把`a`放到最后的位置
fct_relevel(f, "a", after = Inf)
after参数可以设定在谁后面
## 按照某个函数重新排序
f<- fct_relevel(f, sort);f
sort默认从低到高
## 反转顺序
fct_relevel(f, rev)

与原顺序相反
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容