R/attach_Hypertension.R

Defines functions attach_Hypertension

Documented in attach_Hypertension

#' attach Hypertension
#'
#' @param data data
#' @param years years
#' @param systolic 140
#' @param diastolic 90
#' @param n number of test for diagnose hypertension
#'
#' @return
#' @export
#'
attach_Hypertension <- function(data,years,systolic=140,diastolic=90,n=3){
    years <- data_years(data,years)
    bpx <- nhs_tsv('bpx','!~bpxo',years=years,cat = FALSE)
    bpq <- nhs_tsv('bpq',years = years,cat = FALSE)
    d <- nhs_read(bpx,"bpxdi1","bpxdi2","bpxdi3","bpxdi4",
             "bpxsy1","bpxsy2","bpxsy3","bpxsy4",
             bpq,'bpq020','bpq030','bpq040a',lower_cd = TRUE,cat = FALSE)
    # drug
    n1 <- attach_Drug('antihypertensi',data = d,cat = FALSE,goal01 = 1,dcn = FALSE,icn = FALSE)

    # doctor told you
    n1$bpq <- as.numeric(rowSums(n1[,c("bpq020","bpq030","bpq040a")]=='yes',na.rm = TRUE) > 0)
    n1$bpq[rowSums(is.na(n1[,c("bpq020","bpq030","bpq040a")]))==3] <- NA

    # bpx
    sys <- n1[,c("bpxsy1","bpxsy2","bpxsy3","bpxsy4")] >= systolic
    dia <- n1[,c("bpxdi1","bpxdi2","bpxdi3","bpxdi4")] >= diastolic
    n1$bpx <- as.numeric((rowSums(sys,na.rm = TRUE) + rowSums(dia,na.rm = TRUE)) >= n)
    n1$bpx[(rowSums(is.na(sys)) + rowSums(is.na(dia))) == 8] <- NA

    d$Hypertension <- ifelse(rowSums(n1[,c("bpx","drug","bpq")],na.rm = TRUE) > 0,'yes','no')
    d$Hypertension[rowSums(is.na(n1[,c("bpx","drug","bpq")]))==3] <- NA
    if (missing(data)){
        data <- d[,c('seqn','Year','Hypertension')]
    }else{
        d <- d[,c("seqn","Hypertension")]
        data <- dplyr::left_join(data,d,'seqn')
    }
    return(data)
}
yikeshu0611/nhanesR documentation built on Jan. 29, 2022, 6:08 a.m.