Epidata常用校验(CHECK)功能 您所在的位置:网站首页 epidata字段名如何编写 Epidata常用校验(CHECK)功能

Epidata常用校验(CHECK)功能

2024-07-18 07:29| 来源: 网络整理| 查看: 265

原创作者:谢艳清

前言

近日有朋友在《统计咨询》公众号咨询:Epidata软件能否像“问某网”、“问某星”等在线调查工具一样实现跳转、自动校验等功能?小编第一反应是原来有很多朋友不知道Epidata也可以玩出编程的感觉。小编思绪良久,决定邀请一位专家给大家介绍介绍。

相信大家对于Epidata软件都不陌生吧?作为目前广泛使用的数据录入和管理软件,Epidata通过创建调查表文件 (*.qes),建立数据库 (*.rec) 便可开始录入数据。按照上述流程完成录入数据后,你可能需要花费一些时间检查录入的数据是否合理、正确。如果我们能在录入数据前设置好CHECK文件,那么在数据的录入过程中,程序会根据设置的条件,自动检查数据的合理性、正确性,这是保证数据录入质量的重要措施。此外,我们还可以通过CHECK 文件来控制数据录入的跳转,提高问卷录入的效率。

CHECK文件有两种方法可以创建。第一种是通过菜单栏或工作流程栏直接创建,它可以指定或修改某个变量的CHECK命令(变量块命令),包括5个基本的CHECK 设置 (如下图),即Range-Legal (数值允许范围及允许值)、Jumps (跳转)、Mustenter (必须录入)、Repeat (重复)、Valuelabel (数值标签)。第二种方法是通过编辑器手动编写或修改所有CHECK 命令,包括变量块命令、变量块以外的命令(例如,BEFOREFILE 等命令) 或者文件水平上的CHECK 命令。最近笔者在完善问卷录入模板过程的中发现可以通过编写CHECK命令来进行数据的初步校验,希望能给需要编制Epidata数据库的朋友带来小小的帮助,若有不足之处,还请指正。

关于条目位数的校验

问卷常涉及调查对象的个人相关信息,其中身份证号码是一份问卷中较为重要的信息。人工录入过程中难免会发生漏填数字的情况。据此,笔者发现通过 IF...THEN 语句与 LENGTH 函数可以限制条目输入位数。如果身份证号输入位数不等于18位,则弹出对话框提示身份证号码输入有误 (如下图),从而排除数字漏填的情况。示例如下,其中ID代表身份证号码,MUSTENTER表示该条目为必填项:

展开全文

关于某条目前后两次录入的校验

对于调查问卷中较为重要的条目,在未实施双录入的情况下,亦可以通过前后两次录入某条目来保证录入的正确率。笔者发现通过 IF...THEN 语句可以对前后两次录入的同一条目是否一致进行校验。以身份证号码ID、身份证号码二次输入 IDCHECK 为例,如果前后两次输入身份证号码不一致,则弹出对话框提示身份证号前后不一致,从而降低身份证号码输入的错误率 (如下图):

IDCHECK

MUSTENTER

IF (IDCHECKID) THEN

HELP "身份证号前后不一致nn请检查数据" TYPE=WARNING

GOTO IDCHECK

EXIT

ENDIF

END

关于前后逻辑的一致性校验

问卷中的问题相互间往往存在一定的逻辑关系,一个问题的答案选项往往关系到另外一个问题的答案。例如,在关于乙肝的调查问卷中,如果疾病既往史选择患有乙肝疾病,那么乙肝既往史中选择无乙肝既往史就是不符合逻辑的。我们可以通过IF...THEN语句设置CHECK命令,当上述情况发生时,即弹出对话框提示疾病既往史与乙肝既往史不一致 (如下图),从而保证录入数据的逻辑性。示例如下,其中A1=1代表疾病既往史(乙肝),A2=2代表乙肝既往史(无):

A2

IF (A2=2) AND (A1=1) THEN

HELP "疾病既往史(乙肝)与乙肝既往史不一致,请检查数据"TYPE=WARNING

GOTO A2

EXIT

ENDIF

END

拓展

以上所陈述的校验编码都是在变量块中进行编辑。除此之外,我们还可以用 AFTER RECORD 命令设置一个命令块,可同时对多个变量进行编码,在保存一条新的或者修改了的记录前执行该命令块,用来检查数据是否录入正确。如果在 AFTER RECORD 命令块中执行 GOTO 命令,那么当前记录将不被保存。示例如下:

AFTER RECORD

IF LENGTH(ID)18 THEN

HELP "身份证号码位数有误nn请检查数据" TYPE=WARNING

GOTO ID

EXIT

ENDIF

IF (IDCHECKID) THEN

HELP "身份证号码前后不一致n请检查数据" TYPE=WARNING

GOTO IDCHECK

EXIT

ENDIF

IF (A2=2) AND (A1=1) THEN

HELP "疾病既往史(乙肝)与乙肝既往史不一致n请检查数据"TYPE=WARNING

GOTO A2

EXIT

ENDIF

END

友情提示:嵌套的 IF…THEN 命令块个数不限,我们可以根据需要去嵌套更多数量的 IF…THEN 命令块。不过,嵌套的 IF…THEN 越多,我们就越容易遗漏 ELSE 和 ENDIF,所以建议使用缩进功能,使命令块阅读起来更加直观。返回搜狐,查看更多

责任编辑:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有