对于编码和R还是非常新的东西,我正在数据框中处理一些医疗保健数据。我感兴趣的有3种结果-Mobilised_D1
,Diet_D1
和Catheter_rm_D1
。我希望创建一个名为AnyTwo
的第四列,如果这3个结果中有2个是Y
或所有三个结果都是Y
,那么{{ 1}}。
我已经通过使用T
来做到这一点,如下所示:
AnyTwo
但是,我很想看看是否有一种更优雅的方式来做到这一点,例如通过为自己的教育和好奇心编写一个循环。
答案 0 :(得分:2)
我们可以使用rowSums
创建逻辑向量
library(dplyr)
ERAS_limited %>%
mutate(AnyTwo = rowSums(.[-4] == "Y") >= 2)
在base R
中,应该是
ERAS_limited$AnyTwo <- rowSums(ERAS_limited[-4]) == "Y") >= 2