I have a dataframe which includes the following variables: covid alert date, vax dose 1 to vax dose 5 (these are vaccine brands), date dose 1 to date dose 5 (these are the vaccination dates).
The dataset includes all covid vaccines they have ever received however I really only want to keep the vaccine brands and dates that fall before their covid alert date. Is there a way to look at the covid alert date for each row and only keep the vaccine brands and dates that fall before that date? Anything after that date can be changed to NA.
sample_data <- tibble(`covid alert date` = as.Date(c('2022-01-01','2022-02-01','2022-03-01','2022-04-01','2022-05-01','2022-06-01','2022-07-01','2022-08-01','2022-09-01','2022-10-01')),
`vax dose 1` = c("Astrazeneca", "Moderna", "Pfizer", "Astrazeneca", "Moderna", "Pfizer", "Astrazeneca", "Moderna", "Pfizer", "Astrazeneca"),
`date dose 1` = as.Date(c('2021-01-01','2021-02-01','2021-03-01','2023-04-01','2023-05-01','2021-06-01','2021-07-01','2021-08-01','2023-09-01','2023-10-01')),
`vax dose 2` = c("Astrazeneca", "Moderna", "Pfizer", "Astrazeneca", "Moderna", "Pfizer", NA, NA, NA, NA),
`date dose 2` = as.Date(c('2021-04-01','2021-03-01','2021-05-01','2023-06-01','2023-07-01', '2021-08-01', NA, NA, NA, NA)),
`vax dose 3` = c("Pfizer", "Moderna", "Pfizer", "Moderna", NA, NA, NA, NA, NA, NA),
`date dose 3` = as.Date(c('2022-04-01','2021-12-01','2021-12-01','2023-12-01', NA, NA, NA, NA, NA, NA)),
`vax dose 4` = c("Pfizer", "Moderna", NA, NA, NA, NA, NA, NA, NA, NA),
`date dose 4` = as.Date(c('2022-12-01','2022-12-01', NA, NA, NA, NA, NA, NA, NA, NA)),
`vax dose 5` = c("Moderna", NA, NA, NA, NA, NA, NA, NA, NA, NA),
`date dose 5` = as.Date(c('2023-11-01', NA, NA, NA, NA, NA, NA, NA, NA, NA)))
I am very new to using R so any assistance is greatly appreciated. I have included some sample data above. Thanks in advance.
With this approach you first make all dates
NAthat are aftercovid alert date, and whendate dose XisNA, you then make the correspondingvax dose XNAas well