Here is some code to generate some sample data.
mydata <- data.frame(ecig2crav = c("Not at all true", "Not very true", "Somewhat true", "Very true"), ecig2quit = c("Not very true", "Somewhat true", "Very true", NA), ecig2symp = c("Somewhat true", "Very true", "Not at all true", "Not very true"))
mydata
## ecig2crav ecig2quit ecig2symp
## 1 Not at all true Not very true Somewhat true
## 2 Not very true Somewhat true Very true
## 3 Somewhat true Very true Not at all true
## 4 Very true <NA> Not very true
Now I want to recode each of the three variables with the same rules ("Not at all true" = "Not true"; "Not very true" = "Not true"; "Somewhat true" = "True"; "Very true" ="True", NA=NA) to NEW variables. My previous approach was as below:
mydata %>%
mutate(ecig2crav_rec=recode(ecig2crav, "Not at all true"="Not true", "Not very true"="Not true", "Somewhat true"="True", "Very true"="True", .default = NA_character_),
ecig2quit_rec=recode(ecig2quit, "Not at all true"="Not true", "Not very true"="Not true", "Somewhat true"="True", "Very true"="True", .default = NA_character_),
ecig2symp_rec=recode(ecig2symp, "Not at all true"="Not true", "Not very true"="Not true", "Somewhat true"="True", "Very true"="True", .default = NA_character_)).
In this approach, I am repeating the rules for each variable which I would like to avoid. Thanks.
Polly