【发布时间】:2019-12-08 19:23:25
【问题描述】:
我正在尝试比较数据框中的两个因素以创建一个新变量。因素有不同的水平,这是抛出一个错误。
这是一个可重现的例子
library(dplyr)
library(forcats)
mtcars %>%
select(gear, carb) %>%
mutate_at(c("gear", "carb"), ~as_factor(.)) %>%
mutate(gear_vs_carb = gear == carb)
这是错误:
Error in Ops.factor(gear, carb) : level sets of factors are different
我知道我可以通过将因子转换为字符或数字和/或通过将未使用的级别添加到因子以使级别匹配来进行比较,例如How can I compare two factors with different levels?
但是是否可以直接与原始因子进行比较?
输出应该与 for 相同
mtcars %>%
select(gear, carb) %>%
mutate(gear_vs_carb = gear == carb)
感谢您的帮助!
【问题讨论】: