使用forcats包fct_collapse合并整数因子水平遇错误的技术问询
解决fct_collapse合并因子水平报错问题
错误原因
你错误地将合并后的组名"3+"传给了group_other参数,该参数仅接受逻辑值(TRUE/FALSE)或"drop"/"keep",用于控制未指定水平的处理方式;合并后的组名需要通过other_level参数指定。
正确写法
以下两种方式都能实现你的需求:保留原有水平"1"、"3",将"6"、"9"合并为"3+"。
写法一:显式保留指定水平,合并其余
library(forcats) # 初始化因子 f <- factor(c(1,3,6,9)) # 执行合并 fct_collapse(f, `1` = "1", `3` = "3", group_other = TRUE, other_level = "3+")
写法二:直接指定合并组,保留其余水平(更简洁)
library(forcats) f <- factor(c(1,3,6,9)) fct_collapse(f, `3+` = c("6", "9"), group_other = "keep")
两种写法最终得到的因子水平均为"1"、"3"、"3+",原数据中的6和9会被归类到"3+"组。
内容的提问来源于stack exchange,提问作者llewmills
相关产品推荐
相关产品推荐

