### Nutrition cohort smoking variables
nutSmoke <- function(sex="BOTH",initialPath=file.path("s:/cps")){
message("nutSmoke() will return smoking status variables for each survey cycle 1992-2015")
smkvars <- toupper(c("smk92","smk97",
paste0("cignow",c("99","01","03","05","07","09","11","13","15"))))
suppressWarnings(
suppressMessages(
df <- makeCohort(vars=smkvars,sex=sex,initialPath=initialPath)
))
# 1992
df$SMOKE92 <- with(df,ifelse(
is.na(SMK92), 9, ifelse(
SMK92=='1', 1, ifelse(
SMK92 %in% c('2','4'), 2, ifelse(
SMK92 %in% c('3','5'), 3, ifelse(
SMK92=='6', 9, 9)))))) # coding the "ever - current unknown" group to missing
# 1997
df$SMOKE97 <- with(df,ifelse(
is.na(SMK97), 9, ifelse(
SMK97 %in% c('1', '2', '3'), as.numeric(SMK97), 9)))
df$SMOKE97[df$SMOKE97==1 & df$SMOKE92 %in% 2:4] <- 3 # Recode NS to FS based on 1992 data
# 1999
df$SMOKE99 <- with(df,ifelse(
is.na(CIGNOW99), 9, ifelse(CIGNOW99=='2', 2, ifelse(
CIGNOW99==1 & SMOKE97==1, 1, ifelse(
CIGNOW99==1 & SMOKE97 %in% c(2,3), 3, 9)))))
# 2001
df$SMOKE01 <- with(df,ifelse(
is.na(CIGNOW01), 9, ifelse(CIGNOW01=='2', 2, ifelse(
CIGNOW01==1 & SMOKE99==1, 1, ifelse(
CIGNOW01==1 & SMOKE99 %in% c(2,3), 3, 9)))))
# 2003
df$SMOKE03 <- with(df,ifelse(
is.na(CIGNOW03), 9, ifelse(CIGNOW03=='2', 2, ifelse(
CIGNOW03==1 & SMOKE01==1, 1, ifelse(
CIGNOW03==1 & SMOKE01 %in% c(2,3), 3, 9)))))
# 2005
df$SMOKE05 <- with(df,ifelse(
is.na(CIGNOW05), 9, ifelse(CIGNOW05=='2', 2, ifelse(
CIGNOW05==1 & SMOKE03==1, 1, ifelse(
CIGNOW05==1 & SMOKE03 %in% c(2,3), 3, 9)))))
# 2007
df$SMOKE07 <- with(df,ifelse(
is.na(CIGNOW07), 9, ifelse(CIGNOW07=='2', 2, ifelse(
CIGNOW07==1 & SMOKE05==1, 1, ifelse(
CIGNOW07==1 & SMOKE05 %in% c(2,3), 3, 9)))))
# 2009
df$SMOKE09 <- with(df,ifelse(
is.na(CIGNOW09), 9, ifelse(CIGNOW09=='2', 2, ifelse(
CIGNOW09==1 & SMOKE07==1, 1, ifelse(
CIGNOW09==1 & SMOKE07 %in% c(2,3), 3, 9)))))
# 2011
df$SMOKE11 <- with(df,ifelse(
is.na(CIGNOW11), 9, ifelse(CIGNOW11=='2', 2, ifelse(
CIGNOW11==1 & SMOKE09==1, 1, ifelse(
CIGNOW11==1 & SMOKE09 %in% c(2,3), 3, 9)))))
# 2013
df$SMOKE13 <- with(df,ifelse(
is.na(CIGNOW13), 9, ifelse(CIGNOW13=='2', 2, ifelse(
CIGNOW13==1 & SMOKE11==1, 1, ifelse(
CIGNOW13==1 & SMOKE11 %in% c(2,3), 3, 9)))))
# 2015
df$SMOKE15 <- with(df,ifelse(
is.na(CIGNOW15), 9, ifelse(CIGNOW15=='2', 2, ifelse(
CIGNOW15==1 & SMOKE13==1, 1, ifelse(
CIGNOW15==1 & SMOKE13 %in% c(2,3), 3, 9)))))
smoke <- c("SMOKE92","SMOKE97","SMOKE99","SMOKE01","SMOKE03","SMOKE05",
"SMOKE07","SMOKE09","SMOKE11","SMOKE13","SMOKE15")
df[,smoke] <- lapply(df[,smoke],function(x){
factor(x,c(1:3,9),c("Never","Current","Former","Missing"))
})
df <- dplyr::select(df,ID,smoke)
return(df)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.