摘要: 目的:实现简略寿命表的快速计算。方法:利用Excel2000,输入、编辑、存储数据;利用VC++6.0设计用户操作界面及算法。结果:通过用户界面,实现对人员结构表的快速读入、死亡信息表的快速统计和简略寿命表的快速计算。结论:极大地提高了简略寿命表的编制速度,特别是当死亡信息表数据量巨大或数据频繁变动时,提速效果逾发显著。
Abstract: Objective: Realization of fast calculation for Simple Life Table. Methods: Using Excel2000 to input, modify, or store records; Using VC++6.0 to design user interface and Algorithm. Result: By user interface, it can read Live Structure Table, calculate Death Information Table and Simple Life Table in a very short time. Conclusions: Greatly improve the speed of Calculation for Simple Left Table, especially dealing with huge or changeable date, it works well.
关键词: VC++6.0;ACCESS2000;数据库;健康档案;公共卫生管理
Key words: VC++6.0;ACCESS2000;database;health records;management of public health
中***分类号:TP39 文献标识码:A 文章编号:1006-4311(2011)28-0138-02
1 数据整理
利用Excel2000设计人员结构表和死亡信息表,存储于data.xls文件中。人员结构表存储地区、性别以及各个年龄段人口结构数据;死亡信息表存储人员的死亡信息,包括年龄、性别、地区等信息。笔者采集某地区人口年龄结构表和人口死亡信息表,其中人口年龄结构表中包括7个不同乡镇男女共21组数据;死亡信息表中包括了16383条死亡记录。
2 程序设计
2.1 用户界面设计 在用户交互界面中放置3个编辑框,用于输入文件名、lx0和a0;放置3个按钮“导入”、“统计”、“综合统计”、“导入”按钮用于导入人口信息表并统计各年龄段死亡信息,“统计”按钮用来计算不同地区、不同性别的简略寿命表,“综合统计”按钮用来将多个地区、不同性别进行累加后再计算简略寿命表;放置3个列表框,分别用来显示“人口结构表”、“死亡信息表”和“简略寿命表”。
2.2 程序核心代码(节选) 用于计算简略寿命表。
double Px[19], Dx[19], mx[19], qx[19], lx[19], dx[19], Lx[19], Tx[19], ex[19];
int i;
CString sTmp;
for (i = 0; i < 19; i++) //Px, Dx, mx
{
Px[i]=atof(m_listSimple.GetItemText(i + j, 1));
Dx[i]=atof(m_listSimple.GetItemText(i + j, 2));
mx[i]=Dx[i] / Px[i];
}
mx[0]=0;
qx[0]=Dx[0] / Px[0]; // qx
qx[1]=4 * mx[1] / (1 + 2 * mx[1]);
for (i=2; i < 18; i++)
qx[i]=5 * mx[i] / ( 1 + 2.5 * mx[i]);
qx[18]=1;
lx[0] = m_ilx0; // lx, dx
for (i = 0; i < 18; i++)
{
dx[i] = qx[i] * lx[i];
lx[i + 1] = lx[i] - dx[i];
}
dx[18] = lx[18] * qx[18];
Lx[0] = lx[1] + m_da0 * dx[0]; // Lx
Lx[1] = 2 * (lx[1] + lx[2]);
for (i = 2; i < 18; i++)
Lx[i] = 2.5 * (lx[i] + lx[i + 1]);
Lx[18] = lx[18] / mx[18];
Tx[18] = Lx[18]; //Tx
for (i = 17; i > -1 ; i--)
Tx[i] = Tx[i + 1] + Lx[i];
for (i = 0; i < 19 ; i++) //ex
ex[i] = Tx[i] / lx[i];
3 结果调试
运行程序,点击“导入”,读入人员结构表,形成21组人员结构数据,同时读取死亡信息表16383条死亡记录,按不同地区、性别、年龄段自动统计生成21组相对应的死亡信息数据。若点击“统计”,则通过计算得到21组简略寿命表。
若点击“综合统计”则将任意多个地区、按性别进行累加后再计算,得到3组简略寿命表(见***1)。
在实际操作中,只要计算机硬件允许的话,理论上一次可以计算“无限”组简略寿命表。
将7个地区按城乡分两次进行“综合统计”,得到6组简略寿命表,分别是城市男、城市女、城市合计、乡镇男、乡镇女、乡镇合计。将城市合计和乡镇合计这两组数据输出到Excel中(见表1,表2),并绘制条形***(见***2)。通过比较发现:0岁年龄段和1-5岁年龄段的期望寿命非常接近;随着年龄段的增长,城市和乡镇的期望寿命呈递减趋势;在各个年龄段中城市的期望寿命略高于乡镇。
将7个地区按城乡进行累加,“综合统计”得到3组简略寿命表,分别是综合男、综合女、综合合计。将综合男和综合女这两组数据输出到Excel中(见表3,表4),并绘制条形***(见***3)。通过比较发现:0岁年龄段和1-5岁年龄段的期望寿命非常接近;随着年龄段的增长,男性和女性的期望寿命呈递减趋势;在各个年龄段中女性的期望寿命略高于男性。
4 结束语
曾***等[1][2]用VFP程序和SAS程序编制简略寿命表及去死因寿命表,李秀央[3]用EXCEL实现简略寿命表的编制,荀鹏程等[4]用SAS程序编制简略寿命表,林汉生[5]用SPSS编程实现简略寿命表的编制,刘达伟[6]介绍了用Excel进行死亡人口统计并编制简略寿命表。以上6篇文献的作者用不同的程序实现了对简略寿命表的编制,但有四个共同缺点:一是手工统计完人员结构和死亡信息的数据,然后计算简略寿命表,程序仅仅起到计算器的作用,真正需要花费大量时间的死亡信息数据统计仍然是手工统计的方式;二是每次只能得到一组简略寿命表;三是未能提供一个友好的交互式的用户界面;四是未能提供通用的输出接口。
笔者使用Excel2000作为原始数据的输入、编辑、存储工具,通过VC++6.0编写程序,设计友好的交互式用户界面,实现了对人员结构表的快速读入、死亡信息表的快速统计、以及简略寿命表的快速计算,整个过程少于10秒钟;能同时组合计算多组简略寿命表,使计算结果具有比较性;输出接口使用系统剪贴板,通过“复制”、“粘贴”操作可将计算结果输出至Excel、Word、记事本等软件中进行下一步操作。
参考文献:
[1]曾***,田考聪,周燕荣.用VFP程序编制简略寿命表及去死因寿命表.重庆医科大学学报.2000,25(4):398-400.
[2]曾***,王润华,周燕荣.用SAS程序编制简略寿命表及去死因寿命表.现代预防医学.2000,27(3):397-398.
[3]李秀央.用EXCEL实现简略寿命表的编制.中华预防医学杂志.1999,33(3):190-190.
[4]荀鹏程,蔡辉.Reed-Merrel法编制简略寿命表SAS实现技巧.实用预防医学.2004,11(5):1000-1003.
[5]林汉生.SPSS编程在寿命表中的应用.中国卫生统计.2003,20(1):54-55.
[6]刘达伟.Excel在死亡统计中的应用.中国卫生统计.2001,18(6):369-370.
转载请注明出处学文网 » 简略寿命表的快速计算