如何利用NHANES数据开展队列研究?

本文详细介绍了如何获取和处理NHANES数据库中的随访死亡数据,以开展队列研究。首先,访问死亡数据链接并下载所需文件,包括数据、字典和R代码。接着,使用R代码注释死亡数据文件,选择正确的版本进行数据注释。注释完成后,结合字典文件理解变量含义,并根据SEQN字段与其它年份数据合并,最终得到可用于队列研究的数据集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

了解NHANES数据库的人都知道,它是一项全美范围内的横断面调查,但是小编之前也分享过一篇使用NHANES数据开展前瞻性队列研究的文献,今天跟大家分享一下如何获取一份利用nahens数据开展队列研究所需要的随访结果!

1、打开死亡数据链接

https://www.cdc.gov/nchs/data-linkage/mortality.htm

打开后点击Public-Use Files

图片

2、下载Public-Use 2015 LMFSample R program文件

Public-Use 2015 LMF:字典,内有每个字段的相应解释

Sample R program:用于死亡数据注释的R代码,也支持SAS和Stata,下载对应文件即可

3、点击死亡数据下载网址(FTP Site

图片

 根据需要下载对应年份的数据,这里小编下载2013-2014的数据,则随访时间为1年(需要注意的是,死亡数据只更新到2015年为止,所以大家如果要利用nhanes做队列研究,只能下载2015年以前的数据)

4、此时文件夹里多了3个文件,依次是死亡数据,字典,以及R代码

图片

5、注释死亡数据文件

(1)用R打开R_ReadlnProgramAllSurveys.R文件

图片

(2)代码从57行开始(选中相应代码,点击Run可直接运行),跑完65行看下文选择相应版本代码后再继续运行 

图片

(3)选择注释代码版本

官方直接下载的R代码里包括了两个版本的注释代码:NHIS VERISONNHNES VERISON。

小编下载的是NHNES版本的数据,文件注释代码选择NHANES VERISON(从164行代码开始)

图片

只需要正确修改167和168行的文件名就行,改完这2行后,可将后续代码全部选中,然后点击Run,这样就完成了死亡数据文件的注释 

图片

如果下载的是NHIS版本的数据就从72行跑到157行就结束(也只需要注意命名一下72行和73行的文件名)

6、变量解释可以参考Public-Use 2015 LMF文件(也就是字典)

图片

 注释后的死亡数据根据SEQN字段就可以和相应年份的其他数据合并了,这样就得到了一份可以开展队列研究的数据了!


 

### 使用Python批量读取NHANES死亡数据 为了高效地批量读取NHANES(National Health and Nutrition Examination Survey)死亡数据,可以利用`pandas`库的强大功能。该过程涉及多个CSV或SAS文件的加载与合并。 #### 准备工作 确保安装必要的包: ```bash pip install pandas sas7bdat requests tqdm ``` #### 批量下载并读取数据 下面是一个完整的解决方案: ```python import os import pandas as pd from urllib.request import urlretrieve from pyreadstat import read_sas from tqdm import tqdm def download_files(urls, destination_folder): """从给定URL列表下载文件到指定目录""" if not os.path.exists(destination_folder): os.makedirs(destination_folder) for url in urls: filename = os.path.join(destination_folder, os.path.basename(url)) if not os.path.isfile(filename): print(f"Downloading {url}") urlretrieve(url, filename) def load_nhanes_data(file_paths): """根据路径加载所有NHANES SAS文件,并返回DataFrame列表""" data_frames = [] with tqdm(total=len(file_paths), desc="Loading files") as pbar: for file_path in file_paths: df, meta = read_sas(file_path) data_frames.append(df) pbar.update(1) return data_frames if __name__ == "__main__": base_url = "https://www.cdc.gov/nchs/data/nhanes/datalist/" years = ["2019", "2020"] filenames = [ f"{year}_DEATH.sas7bdat" for year in years ] urls = [f"{base_url}{filename}" for filename in filenames] local_dir = "./nhanes_death_data/" # 下载所需的数据文件 download_files(urls, local_dir) # 获取本地文件全路径 downloaded_files = [os.path.join(local_dir, name) for name in os.listdir(local_dir)] # 加载所有的NHANES死亡数据至内存中 dfs = load_nhanes_data(downloaded_files) # 合并所有年份的数据框成单个数据框 combined_df = pd.concat(dfs, ignore_index=True) # 展示前几行记录以验证结果 print(combined_df.head()) ``` 此脚本首先定义了两个辅助函数用于下载远程资源以及加载本地存储的`.sas7bdat`格式文件。接着通过循环构建目标年度对应的文件名列表,并组合成完整的下载链接。最后实现自动化下载、解析并将多张表按列拼接形成统一视图的功能[^1]。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值