• R语言使用dietaryindex包计算NHANES数据多种健康饮食指数 (HEI等)(1)


    健康饮食指数 (HEI) 是评估一组食物是否符合美国人膳食指南 (DGA) 的指标。Dietindex包提供用户友好的简化方法,将饮食摄入数据标准化为基于指数的饮食模式,从而能够评估流行病学和临床研究中对这些模式的遵守情况,从而促进精准营养。

    在这里插入图片描述
    软件包可以计算以下饮食模式指数:
    • 2020 年健康饮食指数(HEI2020 和 HEI-Toddlers-2020)
    • 2015 年健康饮食指数 (HEI2015)
    • 另类健康饮食指数(AHEI)
    • 控制高血压指数 (DASH) 的饮食方法
    • DASH 试验中的 DASH 份量指数 (DASHI)
    • 替代地中海饮食评分 (aMED)
    • PREDIMED 试验中的 MED 份量指数 (MEDI)
    • 膳食炎症指数 (DII)
    • 美国癌症协会 2020 年饮食评分(ACS2020_V1 和 ACS2020_V2)
    • EAT-Lancet 委员会 (PHDI) 的行星健康饮食指数
    下面咱们来演示一下,首先要安装这个包,使用下面代码安装

    library(devtools) # Load devtools
    install_github("jamesjiadazhan/dietaryindex")
    
    • 1
    • 2

    安装好后,按作者的要求,先导入依赖包,然后再倒入R包

    library(dplyr)
    library(haven)
    library(readr)
    library(dietaryindex)
    
    • 1
    • 2
    • 3
    • 4

    咱们以2020 年健康饮食指数(HEI2020)为例子,咱们先来看下它的函数HEI2020_NHANES_FPED,它的函数结构是

    HEI2020_NHANES_FPED(
      FPED_PATH = NULL,
      NUTRIENT_PATH = NULL,
      DEMO_PATH,
      FPED_PATH2 = NULL,
      NUTRIENT_PATH2 = NULL
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    咱们看下这几个参数的说明
    FPED_PATH
    FPED 数据的文件路径。文件名应为:fped_dr1tot_1112.sas7bdat

    NUTRIENT
    NUTRIENT 数据的文件路径。文件名应为 DR1TOT_J.XPT

    DEMO_PATH
    DEMOGRAPHIC 数据的文件路径。文件名应为 DEMO_J.XPT

    FPED_PATH2
    FPED2 数据的文件路径。文件名应为: fped_DR2tot_1112.sas7bdat

    NUTRIENT_PATH2
    NUTRIENT2 数据的文件路径。文件名应类似于 DR2TOT_J.XPT

    其中FPED_PATH和FPED_PATH2(第一天和第二天)是一起的,DEMO_PATH 和NUTRIENT_PATH2 一起的(第一天和第二天),等于分成3个部分。

    FPED 人口文件是指 WWEIA 中食品的食品模式等效文件,可以在这个网址下载:https://www.ars.usda.gov/northeast-area/beltsville-md-bhnrc/beltsville-human-nutrition-research-center/food-surveys-research-group/docs/fped-databases/
    打开页面后,如果咱们想研究2017-2018年的
    在这里插入图片描述
    进入界面后选择Food Patterns equivalents for foods in the WWEIA, NHANES 2017-2018这里就是第一天和第二天的

    在这里插入图片描述
    最后得到如下图两个文件

    在这里插入图片描述
    这两个文件还要进一步解压才行,最后得到fped_dr1tot_1718.sas7bdat和fped_dr2tot_1718.sas7bdat这两个数据文件

    营养人群文件是指饮食访谈中的文件 - 总营养摄入量,第一天或第二天,可以在这个地址下载,后面这Year=这里可以选择年份,我们选2017年和2018年的
    https://wwwn.cdc.gov/nchs/nhanes/search/datapage.aspx?Component=Dietary&CycleBeginYear=2017

    然后选择第三和第四个就是第一和第二天了,要是这种TOT的文件

    在这里插入图片描述

    最后的DEMO文件是指人口统计变量和样本权重中的DEMO文件,在下面这个地址可以下载,选年份和上面是一样的
    https://wwwn.cdc.gov/nchs/nhanes/search/datapage.aspx?Component=Demographics&CycleBeginYear=2017

    这里不用选,直接下载就可以了

    在这里插入图片描述
    至此,咱们已经把HEI2020_NHANES_FPED函数所需要的5个文件全部下载完成,咱们把文件导入

    library(haven)
    setwd("E:/公众号文章2024年/dietaryindex包计算营养指数")
    DEMO_PATH = read_xpt(file ='DEMO_J.XPT')#人口数据
    FPED_PATH_1 = read_sas('fped_dr1tot_1718.sas7bdat')#第一天数据
    NUTRIENT_PATH_1 = read_xpt(file ='DR1TOT_J.XPT')#第一天数据
    FPED_PATH_2 = read_sas('fped_dr2tot_1718.sas7bdat')#第二天数据
    NUTRIENT_PATH_2 = read_xpt(file ='DR2TOT_J.XPT')#第二天数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    把数据导入后就可以计算啦

    dt<-HEI2020_NHANES_FPED(FPED_PATH = FPED_PATH_1, NUTRIENT_PATH = NUTRIENT_PATH_1,
                            DEMO_PATH = DEMO_PATH, 
                            FPED_PATH2 = FPED_PATH_2, NUTRIENT_PATH2 = NUTRIENT_PATH_2)
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    这样结果就出来了,其实作者还提供了更加简便的方法,在作者空间,作者已经把多个年份的数据打包,我们直接下载下来就可以用了,

    在这里插入图片描述
    比如2017-2018年是R包自带的数据

    data("NHANES_20172018")
    dt2<-HEI2020_NHANES_FPED(FPED_PATH = NHANES_20172018$FPED, NUTRIENT_PATH = NHANES_20172018$NUTRIENT,
                        DEMO_PATH = NHANES_20172018$DEMO, 
                        FPED_PATH2 = NHANES_20172018$FPED2, NUTRIENT_PATH2 = NHANES_20172018$NUTRIENT2)
    
    • 1
    • 2
    • 3
    • 4

    哈,两步搞定,两个方法结果是一样的,有兴趣的自己试一下。

    在这里插入图片描述
    作者说了,目前得到的是未加权的数据,还需要加权处理一下,咱们先把数据合并一下

    NHANES_20172018_design_d1 = NHANES_20172018$FPED %>%
       filter(!is.na(WTDRD1)) %>%
       ## select the variables needed for the survey design
       select(SEQN, SDMVPSU, SDMVSTRA, WTDRD1)
    NHANES_20172018_design_d1_HEI2020 = inner_join(dt, NHANES_20172018_design_d1, by = "SEQN") 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    生成调查数据

    library(tableone)
    library(survey)
    
    NHANES_design_1718_d1 <- svydesign(
       ## Masked variance pseudo-PSU
       id = ~SDMVPSU, 
       ## Masked variance pseudo-stratum
       strata = ~SDMVSTRA, 
       ## Dietary day one sample weight
       weight = ~WTDRD1, 
       data = NHANES_20172018_design_d1_HEI2020, 
       nest = TRUE)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    最后分析

    dput(names(NHANES_20172018_design_d1_HEI2020))##输出变量名
    allVars <-c("RIDAGEYR", "HEI2020_ALL", "HEI2020_TOTALFRT", "HEI2020_FRT", 
                "HEI2020_VEG", "HEI2020_GREENNBEAN", "HEI2020_TOTALPRO", "HEI2020_SEAPLANTPRO", 
                "HEI2020_WHOLEGRAIN", "HEI2020_DAIRY", "HEI2020_FATTYACID", "HEI2020_REFINEDGRAIN", 
                "HEI2020_SODIUM", "HEI2020_ADDEDSUGAR", "HEI2020_SATFAT", "SDMVPSU", 
                "SDMVSTRA", "WTDRD1")###所有变量名
    fvars<-c("SDMVPSU")#分类变量定义为fvars
    Svytab2<- svyCreateTableOne(vars = allVars,
                                data =NHANES_design_1718_d1 ,
                                factorVars = fvars)
    Svytab2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    对于其他的指标也是一样的。今天简单的介绍了HEI2020指数的计算,其他指数也是一样的,未完待续。

    参考文献:

    1. dietaryindex包说明
    2. https://github.com/jamesjiadazhan/dietaryindex
    3. https://jamesjiadazhan.github.io/dietaryindex_manual/
    4. https://mp.weixin.qq.com/s/Wbu58wdsgGVVI5aQ-d4LzA
  • 相关阅读:
    Deepin
    Metabase学习教程:提问-3
    ElasticSearch(超详细解说)[springBoot整合ES并简单实现增删改查]
    IDEA快捷键和模板
    Vue开发中的一些常见套路和技巧(上)
    Android焦点机制结合WMS
    Transformer3
    HMM模型
    AVL部分功能实现和了解
    航拍无人机技术,航拍无人机方案详解,无人机摄影技术
  • 原文地址:https://blog.csdn.net/dege857/article/details/136348990