【发布时间】:2020-09-05 21:04:31
【问题描述】:
我的数据具有理论上可能但不存在于数据中的水平。我可以很容易地在base R 中表示这一点:
factor(c("test","test1","test2"), levels = c("test","test1","test2","test3"))
如果我将其表化,我会看到 test3 为 0。这很好,并且允许我编写函数假设这些级别包含所有可能的结果,以防最终添加包含此级别的数据。
我无法在forcats 中复制它。首先,as_factor 函数不接受任何附加参数:
forcats::as_factor(c("test","test1","test2"), levels = c("test","test1","test2","test3"))
以上会产生错误。
以下内容带有警告(如果可能,我希望在没有警告的情况下完成我的目标):
forcats::as_factor(c("test","test1","test2")) %>% forcats::fct_recode(`test` = "test", `tests` = "test1", `tests` = "test2", `tests` = "test3")
Warning message:
Unknown levels in `f`: test3
forcats 中是否有任何方法可以处理理论上存在但当时不一定存在于数据中的关卡?
【问题讨论】: