美国国家健康与营养调查( NHANES, National Health and Nutrition Examination Survey)是一项基于人群的横断面调查,旨在收集有关美国家庭人口健康和营养的信息。
地址为:https://wwwn.cdc.gov/nchs/nhanes/Default.aspx
上期我们已经介绍了对ggsurvey包对插补后数据绘制条形图、箱线图、直方图,这次我们介绍一下survey包对插补后数据绘制条形图、箱线图、直方图,继续使用我们插补后的nhanes数据。
library("survey")
bc<-read.csv("E:/nhanes/nhanestest1.csv",sep=',',header=TRUE)
names(bc)
我介绍一下数据,SEQN:序列号,RIAGENDR, # 性别, RIDAGEYR, # 年龄,RIDRETH1, # 种族,DMDMARTL, # 婚姻状况,WTINT2YR,WTMEC2YR, # 权重,SDMVPSU, # psu,SDMVSTRA,# strata,LBDGLUSI, #血糖mmol表示,LBDINSI, #胰岛素( pmmol/L),PHAFSTHR #餐后血糖,LBXGH #糖化血红蛋白,SPXNFEV1, #FEV1:第一秒用力呼气量,SPXNFVC #FVC:用力肺活量,ml(估计肺容量),LBDGLTSI #餐后2小时血糖。
数据中包含有缺失值插补的信息,这部分我们绘图并不需要,先删掉,并把分类变量转成因子
bc<-bc[,c(1:16)]
bc$RIAGENDR<-as.factor(bc$RIAGENDR)
bc$RIDRETH1<-as.factor(bc$RIDRETH1)
bc$DMDMARTL<-as.factor(bc$DMDMARTL)
生成调查数据
bcSvy2<- svydesign(ids = ~ SDMVPSU, strata = ~ SDMVSTRA, weights = ~ WTMEC2YR,
nest=TRUE,data = bc)
绘制年龄的条形图,绘制之前需对年龄分段,在生成调查数据前分段也可以
bcSvy2<-update(bcSvy2,agecut=cut(RIDAGEYR,c(0,20,40,60,Inf),right=FALSE))
咱们先绘制条形图
a<-svymean(~agecut, bcSvy2)
barplot(a)
修改X轴名称
barplot(a, names.arg=c("青年","中年","中老年","老年"), col="purple",
main="年龄条形图")
修改颜色分类
barplot(a, names.arg=c("青年","中年","中老年","老年"), col=c("red","purple","yellow","blue","green"),
main="年龄条形图")
接下来绘制箱线图,每个种族的年龄分布
svyboxplot(RIDAGEYR~RIDRETH1,bcSvy2,all.outliers=TRUE,col="purple")
也可以调整分类颜色
svyboxplot(RIDAGEYR~RIDRETH1,bcSvy2,all.outliers=T,col=c("red","purple","yellow","blue","green"))
最后绘制年龄的直方图,这里直方图以概率密度来表示
svyhist(~RIDAGEYR, bcSvy2, main="Survey weighted",col="purple")
修改颜色和其他细节都可以调整,我就不多说了。
最后祝大家新年快乐,身体健康,事业顺利,阖家幸福。