R/attach_periodontitis.R

Defines functions attach_periodontitis

Documented in attach_periodontitis

#' periodontitis
#'
#' @param data data
#' @param years years
#' @param Year logical
#'
#' @return yes for periodontitis
#' @export
#'
attach_periodontitis <- function(data,years,Year=FALSE){
    years <- data_years(data,years)

    tsv <- nhs_tsv('ohxp',years=years,cat=FALSE)
    if (length(paq)==0){
        if (do::cnOS()) stop(tmcn::toUTF8("\u8FD9\u4E9B\u5E74\u4EFD\u6CA1\u6709ohxp"))
        if (!do::cnOS()) stop('no ohxp files in this year cycle')
    }
    d <- nhs_read(tsv,cat=FALSE)
    (pcla <- colnames(d)[grepl('[0-9]{2}pc|[0-9]{2}la',colnames(d))] |> do::increase())
    d=d[,c('Year','seqn',pcla)]
    ohd <- set::grep_and(pcla,'ohd')
    if (length(ohd)>0){
        for (i in ohd) {
            ix <- do::Replace(i,'ohd','ohx')
            if (ix %in% pcla){
                d[is.na(d[,ix]),ix] <- d[is.na(d[,ix]),i]
                d <- drop_col(d,i)
            }else{
                colnames(d)[colnames(d)==i] <- ix
            }
        }
    }
    (pcla <- colnames(d)[grepl('[0-9]{2}pc|[0-9]{2}la',colnames(d))] |> do::increase())
    t <- stringi::stri_extract(pcla,regex = '[0-9]{2}')
    pcla <- paste0('t',t,
                   '_',
                   do::Replace0(pcla,'.*[0-9]{2}'))
    colnames(d)[-c(1,2)] <- pcla
    # 99
    d2 <- d[,-c(1,2)]
    d2[d2==99] <- NA
    d[,-c(1,2)] <- d2

    # la
    la <- d[,grepl('_la',colnames(d))]
    ck <- la>=4
    la[ck] <- 1
    la[!ck] <- 0
    d[,grepl('_la',colnames(d))] <- la

    # pc
    pc <- d[,grepl('_pc',colnames(d))]
    ck <- pc>=5
    pc[ck] <- 1
    pc[!ck] <- 0
    d[,grepl('_pc',colnames(d))] <- pc

    t <- unique(t)
    for (i in t) {
        var <- set::grep_and(colnames(d),paste0('t',i,'_'))
        ck <- ifelse(rowsum(d[,var])>=1,1,0)
        eval(parse(text=sprintf('d$t%s <- ck',i)))
        d <- drop_col(d,var)
    }
    d$count <- rowsum(d[,paste0('t',t)])
    d$periodontitis <- ifelse(d$count>=2,'yes','no')
    d <- d[,c("Year","seqn","count","periodontitis")]
    attach_return_data(data,d,Year,join='seqn')

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