R/attach_FCD.R

Defines functions attach_FoodCD

Documented in attach_FoodCD

#' attach USDA food code
#' Food Code Description File
#' @param data data
#' @param short logical
#' @param long logical
#' @param lower_cd logical
#'
#' @return
#' @export
#'
attach_FoodCD <- function(data,short=TRUE,long=TRUE,lower_cd=FALSE){
    years <- unique(data$Year)
    fcd <- nhs_tsv('drxfcd',years = years,cat = FALSE)
    fcdvar <- 'drxfdcd'
    if (short) fcdvar <- c(fcdvar,'drxfcsd')
    if (long) fcdvar <- c(fcdvar,'drxfcld')
    if (isFALSE(short) & isFALSE(long)) return(data)
    n0 <- nhs_read(fcd,fcdvar,cat = FALSE,lower_cd=lower_cd)
    n0 <- drop_col(n0,'Year')
    if (all(c('dr1ifdcd','dr2ifdcd') %in% colnames(data))){
        data <- dplyr::left_join(data,n0,c('dr1ifdcd'='drxfdcd'))
        data <- dplyr::left_join(data,n0,c('dr2ifdcd'='drxfdcd'),suffix = c('_1','_2'))
    }else if ('dr1ifdcd' %in% colnames(data)){
        data <- dplyr::left_join(data,n0,c('dr1ifdcd'='drxfdcd'))
    }else if ('dr2ifdcd' %in% colnames(data)){
        data <- dplyr::left_join(data,n0,c('dr2ifdcd'='drxfdcd'))
    }else{
        if (do::cnOS()) stop(tmcn::toUTF8("\u5FC5\u987B\u662Fiff\u6570\u636E"))
        if (!do::cnOS()) stop('must be iff data')
    }
    return(data)
}
yikeshu0611/nhanesR documentation built on Jan. 29, 2022, 6:08 a.m.