Ifelse返回NA而不是假值

时间:2019-12-18 08:59:17

标签: r if-statement

我正在运行如下代码:

DATA$a<-ifelse((DATA$b=="Yes"|DATA$c=="Yes"),"Yes","No") 

期望获得同时输出Yes和No值的数据列,但是我只能得到Yes值和NA(应为No值)。绝对应该没有值,但它们似乎根本不会出现。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

也许您应该使用

DATA$a<-ifelse(rowSums(DATA[c("b","c")]=="Yes",na.rm = T)>0,"Yes","No")

如此

> DATA
     b    c   a
1  Yes   No Yes
2   No   No  No
3  Yes  Yes Yes
4 <NA>  Yes Yes
5   NO <NA>  No
6 <NA> <NA>  No

虚拟数据

DATA <- data.frame(b=c("Yes","No","Yes",NA,"NO",NA),c=c("No","No","Yes","Yes",NA,NA))
> DATA
     b    c
1  Yes   No
2   No   No
3  Yes  Yes
4 <NA>  Yes
5   NO <NA>
6 <NA> <NA>