R/attach_WorkActivity.R

Defines functions attach_WorkActivity

Documented in attach_WorkActivity

#' work activity
#'
#' @param data data
#' @param years years
#' @param vigorous logical
#' @param moderate logical
#' @param Year logical
#'
#' @return
#' work activity
#' - vigorous:paq605
#' - moderate:paq620
#' - Participants with only vigorous work activity will be regarded as vigorous.
#' Participants with only moderate work activity will be regarded as moderate.
#' Participants with both vigorous and moderate work activities will also be recorded
#' as vigorous.
#' @export
#'
attach_WorkActivity <- function(data,years,
                                vigorous=FALSE,
                                moderate=FALSE,
                                Year=FALSE){
    if (!missing(data)) years <- unique(data$Year)
    years <- prepare_years(years)
    paq <- nhs_tsv('paq\\.|paq_',cat = FALSE)
    d <- nhs_read(paq,'paq605:WA_vigorous','paq620:WA_moderate',lower_cd = TRUE,cat = FALSE)
    d <- to_NA(d)
    d$vigorous <- recode(d$WA_vigorous,
                         "no::0",
                         "yes::2") |> as.numeric()
    d$moderate <- recode(d$WA_moderate,
                         "no::0",
                         "yes::1") |> as.numeric()
    d$work_activity <- rowsum(d[,c("vigorous","moderate")])
    d <- drop_col(d,'moderate','vigorous')
    d$work_activity[d$work_activity>=2] <- 'vigorous'
    d$work_activity[d$work_activity=='1'] <- 'moderate'
    d$work_activity[d$work_activity=='0'] <- 'no'
    if (!vigorous) d <- drop_col(d,'WA_vigorous')
    if (!moderate) d <- drop_col(d,'WA_moderate')
    if (!Year) d <- drop_col(d,'Year')
    if (missing(data)) return(d)
    dplyr::left_join(data,d,'seqn')

}
yikeshu0611/nhanesR documentation built on Jan. 29, 2022, 6:08 a.m.