R/nutSmoke.r

Defines functions nutSmoke

Documented in nutSmoke

### 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)
  }
buddha2490/MargotFun documentation built on Nov. 4, 2019, 8:16 a.m.