Epidata使用教程之快速入门篇(三) 数据录入的控制(1)
2008-12-21
分类:数据管理
正文很久没写了,热热身先:前两节我们了解了如何编写调查表文件,如何用这个文件生成数据库及数据录入界面的显示。
这一节,我们看看数据录入的控制。问题提出:为什么需要“控制”?
还是先前的那个例子,其中编号为4的那一行,有“门诊”“住院”和“住院病案号”三项,这三项中最多只有两项需要我们来录入数据,因为门诊和住院这两种情况是相斥的,一个病人如果是门诊病人,那就不是住院病人,病案号当然也没有了。
所以,为了提高数据录入的效率,我们需要对录入过程进行控制:对于上面的这种情况,我们的预期控制效果是:在录完就诊日期后,光标到“门诊”项,这 时,如果这个病人是门诊病人,那么我们录入1或者Y(因为这个变量是布尔型,其值只有1或Y,0或N,键入其它的值都是无效的)之后,光标不是到“住院” 项,而是跳转到“性别”,因为门诊病人没有病案号。
当然,对数据录入的控制还远不只这些,还包括字段允许值的设定、是否必须录入、是否允许重复数值等。
为了实现这些“控制”过程,我们需要建一个与.rec文件同名但后缀为.chk的文件。在启动epidata后,在工具栏上就能看到建立CHK文件的按钮。
(图1)
选择我们先前生成的sample.rec文件,点击打开后,出现编写CHK文件的页面:
(图2)
简单的解释一下:
Epidata的CHK文件,命令有很多,这个编辑窗口,仅列出了比较常用的几个,其它更为复杂的功能,需要点击“编辑”按钮,以文本编辑方式打开CHK文件来编写CHK命令。这些命令的使用,以后有时间的话我会详细介绍。
上图中对CHK选项卡中的5个项目作了简单的说明,下面逐一进行介绍:
1、字段的允许数值范围与允许数值
对应的CHK命令为:Range和Legal
“控制”作用:在录入时,如果录入的数值不在这两个命令定义的允许数值(范围)内,系统将报错,需重新录入“合格”的数值。
这是CHK文件中常用的两个命令,其作用稍有不同,Range限定的是字段数值的“允许范围”,比如我们可以键入“1-8”,代表该字段的数值是从 1到8且连续的8个数值;而Legal则限定字段的允许数值,对上面这种情况,用Legal命令的话,我们需要键入“1,2,3,4,5,6,7,8”, 如果实际情况是既有连续的数值,又有不连续的,那这两个命令可以一起用,比如键入“1-5,7,8”,表示这个字段共允许7个数值,包括1到5连续5个 数,还有“7”和“8”这两个数。如果录入时输入了6,系统会报错,提示“非法录入”,同时还提示应该输入的允许数值(范围)。如下图:
(图3 Range和Legal这两个命令的作用就是这个)
看到本文图2中那个“编辑”按钮了吗?我们点击它看看里面是什么:
这是对当前字段的CHK命令进行文本方式的编辑(其实Epidata的文件基本都是文本格式,只不过文件的后缀不是.txt罢了)。在里面我们可以看到,一个合格的CHK命令是字段名加CHK命令,以END结尾。
Range命令的用法是
RANGE 1 5 (它定义了允许的数值范围是1到5)
END (注意:多数CHK命令都以1个END结尾。如果RANGE和LEGAL两个命令都有,则这两个命令后只需一个END)
Legal的用法是:
LEGAL
7
8
END
对于LEGAL命令,每个允许的数值要占一行。
事实上,对于这两个命令,我们不需要以文本方式编辑,直接在图2中的选项卡中填上数值范围或数值就可以了(以,分隔每个单独的数值),而对于选项卡中没有的命令,我们必需用编辑文本自己编写。
好了,这两个命令我们已经简单的了解了用法,下面我们看看跳转命令Jumps怎么用。
转载原创文章,请注明:转载自益药,益友-Medleaf的医药博客[http://www.cnmed.net/blog/]
本文链接地址:http://www.cnmed.net/blog/2008/epidata-tutorial-3-1.html


RSS 订阅我的博客













暂时没有人发言