数据获取与准备
CHARLS数据库注册完成,访问CHARLS官方网站,根据研究目的,确定暴露指标、结局指标和协变量。下载相关问卷、数据集和编码本。
数据导入
▶ 读取各类原始数据文件
demo_data <-read_dta("demographic_background.dta") # 人口学背景数据health2011_data <-read_dta("health2011.dta") # 2011年健康数据▶ 由于CHARLS数据库在2011年的ID为11位,后续的年份ID为12位。所以对2011年的ID进行处理 ,以便后续和其他年份的数据合并
demo_data <-demo_data %>% mutate(ID=as.character(ID)) %>% mutate(ID=paste0(substr(ID, 1, nchar(ID) -1), "0", substr(ID, nchar(ID), nchar(ID))))▶ 读取其他周期数据
health2020 <-read_dta("health2020.dta") # 2020年健康数据数据清洗
▶ 根据参考文献对变量进行定义和分类,如文化程度、饮酒状况
demo_data $ education <-ifelse(demo_data$bd001 %in%c(1, 2, 3, 4,5), 1, # 初中及以下 ifelse(demo_data$bd001 %in%c( 6, 7), 2, # 高中和职业学校 ifelse(demo_data$bd001 %in%c(8, 9, 10, 11), 3, # 高等教育 NA # 如果有其他不在这些范围内的情况)))harmonized_data <-harmonized_data %>% mutate( drink =case_when( r1drinkn_c ==0~ 0, # 如果没有喝酒,赋值 0 r1drinkn_c %in%1:9~ 1, # 如果喝酒(饮酒次数 在 1 到 9 之间),赋值 1 TRUE ~ NA_real_ # 其他情况为 NA ))▶ 已有变量重命名
harmonized_data <-harmonized_data %>%rename(age =r1agey) blood_data <-blood_data %>%rename(TG =newtg)demo_data <-demo_data %>%rename(gender =rgender)▶ 衍生变量计算
① 如残余胆固醇的计算:
merged_data <-merged_data %>%mutate(RC =newcho -newhdl -newldl)② 慢性肾病(CKD)的定义:
merged_data <-merged_data %>%mutate(CKD =ifelse(eGFR < 60, 1, 0) # 小于60即为CKD)③ 疾病状态定义:查阅文献,高血压的定义为收缩压>=130,或舒张压>=80,或服用降压药,或自我报告患有高血压
merged_data <-merged_data %>% mutate(hypertension =case_when( SBP >=130| DBP >=80| r1hibpe ==1| Hypertension_drugs ==1~ 1, TRUE ~ 0))数据合并
merged_data <-harmonized_data %>% left_join(demo_data, by ="ID") %>% left_join(blood_data, by ="ID")%>% left_join(health2011_data, by ="ID")%>% left_join(Sample2020_data, by ="ID")参与者筛选
df <-df %>%filter(!is.na(age) & age >=45) #排除年龄小于 45 岁或缺失df <-df %>%filter(fasting ==1) #排除无空腹血样的df <-df %>%filter(!is.na(RC) & RC > 0& RC <=120) #排除缺失值df <-df %>%filter((BMI >=10& BMI <=100) | is.na(BMI)) #排除极端值





评论列表