【发布时间】:2019-03-19 15:34:22
【问题描述】:
我正在尝试使用 dplyr 的 if_else 语句改变我的 data_frame 中的新列。但是,如果 TRUE 默认为 NA,我分配给向量的值,而 FALSE 值似乎正在工作。我不确定它是否与变量类型或什么有关,但我非常感谢您对此的帮助。
我的数据
data <-
data.frame(SP = c("A","B","C","D","E"),
Sale = c("Y","Y",NA,"Y",NA),
WWS = c(NA,NA,"Y",NA,"Y"))
添加新列的现有代码
data %>%
mutate(RMV = if_else(
Sale == "Y" & WWS != "Y", "Keep","-"))
当我运行上面的代码时,所有的 TRUE 值都默认为 NA,而不是 Keep。
【问题讨论】:
-
我们无法比较 NA 值,请尝试:
NA == 1、NA == NA等。 -
data %>% mutate(RMV = dplyr::if_else( ( !is.na( Sale ) & Sale == "Y" ) & ( WWS != "Y" | is.na( WWS ) ) , "Keep", "-" ) )