百分位数的程序计算法
作者:白金牛 杜鹏飞 郑恩洋
单位:白金牛 郑恩洋(包头医学院计算机教研室,包头 014010);杜鹏飞(包头市运管处)
关键词:
包头医学院学报000308 中图分类号 TP311.11 文献 标识码 B 文章编号 1006-740X(2000)03-0186-02
医学统计学中经常需要计算百分位数,如果用手工计算,运算量往往较大, 特别在样本例数较多时,往往需手工排序或列频数表,特别烦琐,而且容易出错,一般的软 件包也不具有此项功能,笔者用程序设计的方法,用很 短的一段程序就实现了此项功能,用同样的编程思想,也可利用其它的高级语言实现。下面 笔者以FoxBase编程为例,介绍具体的实现方法,以期为卫生统计工作者提供一种计算百分 位数的简便算法。
1 建立数据库文件
设数据库文件名为SJK.DBF,结构如下:
Structure for database: C:\\FOX\\SJK.DBF
Field Field Name Type Width Dec
1 SAMPLE Numeric 10 2
**Total** 11
2 将原始数据录入上面的库中
3 编程
程序清单如下:
CLEA ALL
SET TALK OFF
USE SJK
SORT TO SJK1 ON SAMPLE
USE SJK1
COUNT TO N
@ 10,10 SAY“输入百分位数时,以小数形式输入,如第95%位数输入0.95”LNPUT“请输 入要计算的百分位数”TO P
N1=INT(P*(N+1))
N0=P*(N+1)
M=N0-N1
N2=INT(P*N+1)
GO N1
P0=SAMPLE
GO N2
P1=SAMPLE
PX=P0+(P1-P0)*M
PP=P*100
@10,10 SAY“所要求的第”
@ROW(),COL() SAY PP
@ROW(),COL() SAY’%百分位数为’
@ROW(),COL() SAY PX
SET TALK ON
RETU
上面程序的主要思想是,首先求出样本例数N,算出百分位所在记录号(N1,N2),P为从键盘 输入的百分位数,程序找到百分位数所在记录号(N1,N2),与确定百分位数所在组段方法类 似,然后将变量值取出,赋给P0,P1,用直线内插法求出百分位数的精确值,最后显示出结 果。由于程序的算法是按记录号查找百分位数的,所以不管例数多少都能计算。
作者简介:白金牛(1967-),男,内蒙古杭锦旗人,学士 ,讲师。
收稿日期:2000-04-25, 百拇医药
单位:白金牛 郑恩洋(包头医学院计算机教研室,包头 014010);杜鹏飞(包头市运管处)
关键词:
包头医学院学报000308 中图分类号 TP311.11 文献 标识码 B 文章编号 1006-740X(2000)03-0186-02
医学统计学中经常需要计算百分位数,如果用手工计算,运算量往往较大, 特别在样本例数较多时,往往需手工排序或列频数表,特别烦琐,而且容易出错,一般的软 件包也不具有此项功能,笔者用程序设计的方法,用很 短的一段程序就实现了此项功能,用同样的编程思想,也可利用其它的高级语言实现。下面 笔者以FoxBase编程为例,介绍具体的实现方法,以期为卫生统计工作者提供一种计算百分 位数的简便算法。
1 建立数据库文件
设数据库文件名为SJK.DBF,结构如下:
Structure for database: C:\\FOX\\SJK.DBF
Field Field Name Type Width Dec
1 SAMPLE Numeric 10 2
**Total** 11
2 将原始数据录入上面的库中
3 编程
程序清单如下:
CLEA ALL
SET TALK OFF
USE SJK
SORT TO SJK1 ON SAMPLE
USE SJK1
COUNT TO N
@ 10,10 SAY“输入百分位数时,以小数形式输入,如第95%位数输入0.95”LNPUT“请输 入要计算的百分位数”TO P
N1=INT(P*(N+1))
N0=P*(N+1)
M=N0-N1
N2=INT(P*N+1)
GO N1
P0=SAMPLE
GO N2
P1=SAMPLE
PX=P0+(P1-P0)*M
PP=P*100
@10,10 SAY“所要求的第”
@ROW(),COL() SAY PP
@ROW(),COL() SAY’%百分位数为’
@ROW(),COL() SAY PX
SET TALK ON
RETU
上面程序的主要思想是,首先求出样本例数N,算出百分位所在记录号(N1,N2),P为从键盘 输入的百分位数,程序找到百分位数所在记录号(N1,N2),与确定百分位数所在组段方法类 似,然后将变量值取出,赋给P0,P1,用直线内插法求出百分位数的精确值,最后显示出结 果。由于程序的算法是按记录号查找百分位数的,所以不管例数多少都能计算。
作者简介:白金牛(1967-),男,内蒙古杭锦旗人,学士 ,讲师。
收稿日期:2000-04-25, 百拇医药