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")

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

library(dplyr)
library(haven)
library(readr)
library(dietaryindex)

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

HEI2020_NHANES_FPED(
  FPED_PATH = NULL,
  NUTRIENT_PATH = NULL,
  DEMO_PATH,
  FPED_PATH2 = NULL,
  NUTRIENT_PATH2 = NULL
)

咱们看下这几个参数的说明
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')#第二天数据

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

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)

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

在这里插入图片描述
比如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)

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

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

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") 

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

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)

最后分析

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

在这里插入图片描述
对于其他的指标也是一样的。今天简单的介绍了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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】string 类 ( 上)

标准库中的string类 注意&#xff1a; 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同&#xff0c;再添加了一些专门用来操作string的常规操作。 比特就业课 3. string在底层实际是&#xff1a;basic_string模板类的别名&#xff0c;typedef basi…

RFID(Radio Frequency Identification)技术笔记

一、RFID的介绍 RFID&#xff0c;全称为Radio Frequency Identification&#xff0c;即射频识别技术&#xff0c;也常被称为电子标签或无线射频识别。它是一种非接触式的自动识别技术&#xff0c;通过射频信号自动识别目标对象并获取相关数据&#xff0c;识别过程无需人工干预&…

LeetCode 刷题 [C++] 第45题.跳跃游戏 II

题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]i j < n 返回到达 nums[n …

金融行业专题|期货超融合架构转型与场景探索合集(2023版)

更新内容&#xff1a; 更新 SmartX 超融合在期货行业的覆盖范围、部署规模与应用场景。新增 CTP 主席系统实践与评测、容器云资源池等场景实践。更多超融合金融核心生产业务场景实践&#xff0c;欢迎下载阅读电子书《SmartX 金融核心生产业务场景探索文章合集》。 面对不断变…

【AI Agent系列】【MetaGPT多智能体学习】6. 多智能体实战 - 基于MetaGPT实现游戏【你说我猜】(附完整代码)

本系列文章跟随《MetaGPT多智能体课程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并实践多智能体系统的开发。 本文为该课程的第四章&#xff08;多智能体开发&#xff09;的第四篇笔记。今天我们来完成第四章的作…

深度学习需要掌握哪些数学基础?

《深度学习的数学》这本书再合适不过了。作者罗纳德.T.纽塞尔&#xff08;Ronald T. Kneusel&#xff09;&#xff0c;拥有超过 20年的机器学习行业经验。 本书适合有一定深度学习基础、了解Python编程语言的读者阅读&#xff0c;也可作为用于拓展深度学习理论的参考书。 为什么…

SQL 术语:Join 中的 Build 和 Probe 是什么意思?

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

vue+springboot项目部署服务器

项目仓库&#xff1a;vuespringboot-demo: vuespringboot增删改查的demo (gitee.com) ①vue中修改配置 在public文件夹下新建config.json文件&#xff1a; {"serverUrl": "http://localhost:9090"//这里localhost在打包后记得修改为服务器公网ip } 然后…

Linux: Network: socket: sendto 如果返回0,是否一定代表发送成功?

最近遇到一个问题&#xff0c;虽然应用层使用的系统调用send已经返回成功&#xff0c;而且没有错误日志产生&#xff0c;也没有errno的设置。那是不是代表一定是没有问题&#xff1f;从抓包的结果看&#xff0c;虽然上层应用已经显示发出去&#xff0c;但是实际抓包的时候&…

WP外贸营销型网站模板

WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题&#xff0c;适合时尚服装行业搭建wordpress企业官网使用。 零件配件WordPress外贸建站模板 汽车行业零配件WordPress外贸建站模板&#xff0c;卖配件、零件的外贸公司可以使用的WordPress主题。 https://www.jia…

windows 系统上搭建 Phpstudy 集成环境 + DVWA 靶场!超详细教程!

作为安全测试或渗透测试学习者&#xff0c;需要搭建一些靶场来进行技术练习&#xff0c;靶场类型有很多&#xff0c;搭建方式也支持多样&#xff0c;本文给你详细介绍windows系统下如何通过phpstudy集成环境搭建DVWA靶场&#xff01; 一、前言 网站是由中间件、网站程序、数据库…

暗九之凶险,更甚于明九

俗话说“逢九必衰”&#xff0c;逢九年是人运程变化的一个过程&#xff0c;这是古人长期以来对于命运的一种总结。“九”是转弯之数&#xff0c;故 “逢九”之人当年的运程容易大起大落、易招变数&#xff0c;若是严重一些&#xff0c;则有可能会殒命在这一年&#xff0c;一定要…

【计算机网络通信】计算机之间的局域网通信和互联网通信方法(附Python和C#代码)

文章目录 前言一、局域网通信1.1 基本原理和方法1.1.1 获取本地ip1.1.2 实现局域网内的广播1.1.3 进行局域网通信 1.2 实现多客户端连接1.3 Python源码1.4 C#源码1.5 可能存在的问题 二、互联网通信2.1 实现原理2.1.1 内网穿透软件2.1.2 实现互联网通信 2.2 Python源码2.3 C#源…

中国电子学会2019年12月份青少年软件编程Scratch图形化等级考试试卷四级真题。

第 1 题 【 单选题 】 1.以下模块&#xff0c;可以“说”出“我喜欢Apple”的是&#xff1f; A&#xff1a; B&#xff1a; C&#xff1a; D&#xff1a; 2.某学校为教师外出提供车辆服务&#xff0c;当外出人数小于5人时&#xff0c;派轿车&#xff1b;当外出人数为5至7人的话…

初阶数据结构:二叉树

目录 1. 树的相关概念1.1 简述&#xff1a;树1.2 树的概念补充 2. 二叉树2.1 二叉树的概念2.2 二叉树的性质2.3 二叉树的存储结构与堆2.3.1 存储结构2.3.2 堆的概念2.3.3 堆的实现2.3.3.1 堆的向上调整法2.3.3.2 堆的向下调整算法2.3.3.3 堆的实现 1. 树的相关概念 1.1 简述&a…

链表基础知识详解(非常详细简单易懂)

概述&#xff1a; 链表作为 C 语言中一种基础的数据结构&#xff0c;在平时写程序的时候用的并不多&#xff0c;但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛&#xff0c;所以必须要搞懂链表&#xff0c;链表分为单向链表和双向链表&#xff0c;单向链表很…

[Linux]如何理解kernel、shell、bash

文章目录 概念总览kernelshell&bash 概念总览 内核(kernel) &#xff0c;外壳(shell) &#xff0c;bash kernel kernel是指操作系统中的核心部分&#xff0c;用户一般是不能直接使用kernel的。它主要负责管理硬件资源和提供系统服务&#xff0c;如内存管理、进程管理、文件…

国内chatgpt写作软件,chatgpt国内使用

随着人工智能技术的不断发展&#xff0c;国内涌现出了一些基于ChatGPT模型的写作软件&#xff0c;这些软件不仅能够实现智能化的文章写作&#xff0c;还支持批量生成各种类型的文章。本文将深入探讨国内ChatGPT写作软件&#xff0c;以及它们在批量文章创作方面的应用与优势。 C…

如何使用Docker搭建StackEdit编辑器并结合内网穿透实现远程办公

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

K线实战分析系列之十七:三法形态——接连犹豫后再次坚定

K线实战分析系列之十七&#xff1a;三法形态——接连犹豫后再次坚定 一、三法形态二、总结三法形态 一、三法形态 前后两根长K线中间夹了三根短小的K线 二、总结三法形态 中间的几根小阴线数量限制没有那么严苛中间小K线的颜色不一定是依次下降的小阴线或小阳线&#xff0c;也…