R/attach_Anemia.R

Defines functions attach_Anemia

Documented in attach_Anemia

#' Anemia at sea level
#'
#' @param data data
#' @param years years
#' @param Year logical
#' @description According to WHO standards, four grades of anemia for children,
#'     pregnant women, non-pregnant women and men.
#' @references http://apps.who.int/iris/bitstream/handle/10665/85839/WHO_NMH_NHD_MNM_11.1_eng.pdf?sequence=22
#' @details Haemoglobin levels to diagnose anaemia at sea level (g/l)
#'
#' - Children 6 - 59 months of age:   Non -Anaemia(110 or higher)   Mild(100-109) Moderate(70-99)  Severelower than 70)
#' - Children 5 - 11 years of age:    Non -Anaemia(115 or higher)   Mild(110-114) Moderate(80-109) Severelower than 80)
#' - Children 12 - 14 years of age:   Non -Anaemia(120 or higher)   Mild(110-119) Moderate(80-109) Severelower than 80)
#' - Non-pregnant women
#'     (15 years of age and above):   Non -Anaemia(120 or higher)   Mild(110-119) Moderate(80-109) Severelower than 80)
#' - Pregnant women:                  Non -Anaemia(110 or higher)   Mild(100-109) Moderate(70-99)  Severelower than 70)
#' - Men: (15 years of age and above) Non -Anaemia( 130 or higher)  Mild(110-129) Moderate(80-109) Severelower than 80)
#' @return
#' @export
#'
attach_Anemia <- function(data,years, Year=FLASE){
    years <- data_years(data,years)
    (demo <- nhs_tsv('demo',items = 'demo',years = years,cat=FALSE))
    (hb_tsv <- nhs_tsv('lab25\\.|l25_b\\.|l25_c\\.|cbc',items = 'lab',years = years,cat=FALSE))
    nr <- nhs_read(demo,"riagendr:sex","ridageyr:age",'ridexprg:prg',
                   hb_tsv,"lbxhgb:hb",
                   cat=FALSE,
                   lower_cd = TRUE)

    nr <- attach_Pregnant(data = nr)
    # anemia
    nr$anemia[nr$age < 0.5] <- 'age<0.5y'

    ck <- nr$age >=0.5 & nr$age<5
    severe <- 7; Moderate <- 10; Mild <- 11
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    ck <- nr$age >=5 & nr$age<12
    severe <- 8; Moderate <- 11; Mild <- 11.5
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    ck <- nr$age >=12 & nr$age<15
    severe <- 8; Moderate <- 11; Mild <- 12
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    ck <- nr$age >=12 & nr$age<15
    severe <- 8; Moderate <- 11; Mild <- 12
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    ck <- nr$age >=15 & nr$sex=='male'
    severe <- 8; Moderate <- 11; Mild <- 13
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    ck <- nr$age >=15 & nr$sex=='female' & nr$pregnant == 'yes' & (!is.na(nr$pregnant))
    severe <- 7; Moderate <- 10; Mild <- 11
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    ck <- nr$age >=15 & nr$sex=='female' & (nr$pregnant == 'no' | is.na(nr$pregnant))
    severe <- 8; Moderate <- 11; Mild <- 12
    nr$anemia[ck] <- ifelse(nr$hb[ck]< severe,'Severe',ifelse(nr$hb[ck] < Moderate,'Moderate',ifelse(nr$hb[ck]<Mild,'Mild','Non-Anaemia')))

    d <- nr[,c('seqn','Year','anemia')]
    attach_return_data(data,d,Year,'seqn')
}
yikeshu0611/nhanesR documentation built on Jan. 29, 2022, 6:08 a.m.