I have a dataset with around 2 million samples. There are 30 columns for diagnoses which are coded, each labeled I10_DX1 to I10_DX30. I need to create a new variable from these existing columns.
For example, data= CHD_2016, new variable I would like to generate is =tetralogy. If any of the codes in columns I10_DX1 to I10_DX30 have Q0[01234567], it will be coded 1 otherwise 0. I am able to make it work using the code below. But, I think there has to be a shorter and better way to do it. In stata, I am able to do this in few lines using loop. Can someone suggest a better way please!
CHD_2016$tetralogy<- ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX1), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX2), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX3), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX4), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX5), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX6), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX7), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX8), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX9), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX10), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX11), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX12), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX13), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX14), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX15), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX16), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX17), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX18), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX19), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX20), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX21), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX22), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX23), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX24), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX25), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX26), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX27), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX28), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX29), 1, 0)|
ifelse(grepl("Q0[01234567]", CHD_2016$I10_DX30), 1, 0) ```