根据其他条件创建新列

时间:2019-09-02 14:58:00

标签: r

对于编码和R还是非常新的东西,我正在数据框中处理一些医疗保健数据。我感兴趣的有3种结果-Mobilised_D1Diet_D1Catheter_rm_D1。我希望创建一个名为AnyTwo的第四列,如果这3个结果中有2个是Y或所有三个结果都是Y,那么{{ 1}}。

我已经通过使用T来做到这一点,如下所示:

AnyTwo

但是,我很想看看是否有一种更优雅的方式来做到这一点,例如通过为自己的教育和好奇心编写一个循环。

1 个答案:

答案 0 :(得分:2)

我们可以使用rowSums创建逻辑向量

library(dplyr)
ERAS_limited %>% 
    mutate(AnyTwo = rowSums(.[-4] == "Y")  >= 2)

base R中,应该是

ERAS_limited$AnyTwo <- rowSums(ERAS_limited[-4]) == "Y") >= 2