Filtrar filas en función de las cadenas "que comienzan por" variables especificadas por vector
Estoy tratando de filtrar una base de datos de pacientes basada en códigos específicos de ICD9 (diagnóstico). Me gustaría usar un vector que indique las primeras 3 cadenas de los códigos ICD9.
La base de datos de ejemplo contiene 3 variables de caracteres para los códigos IC9 para cada visita del paciente (var1 a var3).
A continuación se muestra un ejemplo de los datos.
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)
He intentado varios enfoques, incluidas las funciones grep y% like% como puede ver arriba, pero no he podido hacer que funcione para mi caso. Agradecería cualquier ayuda que pueda proporcionar.
Feliz día de gracias
Albit