dplyr 同时过滤多列上的多个数字

Joe*_*ier 4 r dplyr

我有一个这样的数据集:

PatientNum<- c(1, 2, 3, 4, 5)
Age<- c(10, 21, 51, 42, 35) 
SurgicalProcedureNumber <- c(21356, 21424, 221356, 12345, 54321) 
OtherSurgicalProcedureNumber   <- c(54321, 21356, 12345, 12345, 21424) 
BloodLoss<-c(5,4,5,10,5)
YetAnotherSurgicalProcedureNumber<-c(11111,22222,33333,21356,555555)

dataset <- data.frame(PatientNum, Age, SurgicalProcedureNumber, OtherSurgicalProcedureNumber, BloodLoss,YetAnotherSurgicalProcedureNumber)  
Run Code Online (Sandbox Code Playgroud)

我想知道患者何时接受某些手术:

NumbersIcareAbout<- c(21356,21424)
Run Code Online (Sandbox Code Playgroud)

我知道在我可以做的一栏中找到它们:

dataset%>%filter(SurgicalProcedureNumber%in%NumbersIcareAbout)
Run Code Online (Sandbox Code Playgroud)

这将返回患者 1 和 2,因为它有这些代码...但我希望它在这些数字出现在 SurgicalProcedureNumber、OtherSurgicalProcedureNumber 或 YetAnotherSurgicalProcedureNumber 中时返回该行

不知道如何,也无法在这里找到它。

akr*_*run 6

dplyr1.0.4版本中,我们可以filter使用if_any

library(dplyr)
dataset %>%
      filter(if_any(ends_with("ProcedureNumber"), ~ . %in% NumbersIcareAbout))
Run Code Online (Sandbox Code Playgroud)