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

f <- factor(sample(letters[1:3], 20, replace = TRUE))
f
#增加因子水平
fct_expand(f, "d", "e", "f")

增加因子水平
#自动删除没用的因子水平
f <- factor(c("a", "b"), levels = c("a", "b", "c","1"))
f
fct_drop(f)
自动删除了没用的因子水平
#给 NA 一个水平,确保画图或汇总的时候能用上
f1 <- factor(c("a", "a", NA, NA, "a", "b", NA, "c", "a", "c", "b"))
fct_count(f1)
f2 <- fct_explicit_na(f1, na_level = "missing")
fct_count(f2)
缺失值给予了变量名称
#这个函数是作用于列表的,用于统一列表内的因子水平
fs <- list(factor("a"), 
           factor("b"), 
           factor(c("a", "b")))

fct_unify(fs, levels = c("a", "b", "c"))
感觉用处不大
fruit <- factor(c("apple", "kiwi", "apple", "apple"))
colour <- factor(c("green", "green", "red", "green"))
fct_cross(fruit, colour)

类似于形成pyhton中的字典
x <- c("a", "z", "g")
as.factor(x) # 会改变顺序
## [1] a z g
## Levels: a g z
as_factor(x) # 还是按照原来的顺序
## [1] a z g
## Levels: a z g
个人感觉不换顺序更符合预期
#检查是否存在某个因子
table(fct_match(gss_cat$marital, c("Married", "Divorced")))

代码块
代码块
代码块
代码块
代码块
代码块
代码块
代码块

你可能感兴趣的:(R中可以处理因子的一切-forcats包(四))