Фильтровать строки на основе переменных, начинающихся со строк, заданных вектором

Я пытаюсь отфильтровать базу данных пациентов по конкретным кодам ICD9 (диагностика). Я хотел бы использовать вектор, обозначающий первые 3 строки кодов ICD9.

База данных примера содержит 3 символьные переменные для кодов IC9 для каждого посещения пациента (var1-var3)

Ниже приведен пример данных

patient<-c("a","b","c")
var1<-c("8661", "865","8651")
var2<-c("8651","8674","2866")
var3<-c("2430","3456","9089")

observations<-data_frame(patient,var1,var2,var3)

   patient  var1  var2  var3
1       a  8661  8651  2430
2       b  865   8674  3456
3       c  8651  2866  9089

#diagnosis of interest: all beginning with "866" and "867"
dx<-c("866","867")

filtered_data<- filter(observations, var1 %like% dx | var2 %like% dx | var3 %like% dx)  

Я попробовал несколько подходов, включая функции grep и% like%, как вы можете видеть выше, но я не смог заставить его работать в моем случае. Буду признателен за любую помощь, которую вы можете предоставить.

С Днем благодарения

Альбит

Ответы на вопрос(3)

Ваш ответ на вопрос