为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

EpiData 使用手册(中文)

2017-10-23 50页 doc 91KB 263阅读

用户头像

is_266065

暂无简介

举报
EpiData 使用手册(中文)EpiData 使用手册(中文) EpiData 目 录 介 绍 4 EPIDATA 中的变量类型 4 自动编码变量 4 数值型变量 4 字符型变量 4 大写型字符变量 4 是否型变量 4 日期型变量 4 今天型日期字段 5 SOUNDEX型变量 5 隔位符 5 变量名称 6 自动生成变量名 6 把第一个词作为变量名 6 变量标签 7 更改变量名 7 创建数据文件 7 修改数据文件 8 数据文件的纵向连接和横向连接 9 纵向连接 9 横向连接 9 记录查找 9 数据双录入和核对 10 1 常...
EpiData 使用手册(中文)
EpiData 使用手册(中文) EpiData 目 录 介 绍 4 EPIDATA 中的变量类型 4 自动编码变量 4 数值型变量 4 字符型变量 4 大写型字符变量 4 是否型变量 4 日期型变量 4 今天型日期字段 5 SOUNDEX型变量 5 隔位符 5 变量名称 6 自动生成变量名 6 把第一个词作为变量名 6 变量标签 7 更改变量名 7 创建数据文件 7 修改数据文件 8 数据文件的纵向连接和横向连接 9 纵向连接 9 横向连接 9 记录查找 9 数据双录入和核对 10 1 常用核对命令 10 AFTER ENTRY 10 AFTER FILE 11 AFTER RECORD 11 AUTOJUMP 11 AUTOSAVE 12 BEFORE ENTRY 12 BEFORE FILE 12 BEFORE RECORD 12 CLEAR 12 COMMENTS (*) 13 COMMENT LEGAL 13 CONFIRM 14 CONFIRMFIELD 14 DEFINE 14 EXIT 15 GOTO 15 GOTO WRITEREC 16 HELP 16 HIDE, UNHIDE 16 IF..THEN 17 IGNOREMISSING 18 JUMPS 18 KEY 19 LABEL / LABELBLOCK 19 LEGAL 20 LET 20 MUSTENTER 20 NOENTER 20 RANGE 20 RELATE 21 REPEAT 21 TYPE 21 TYPE COMMENT 22 TYPE STATUSBAR 22 WRITENOTE 23 快捷键和鼠标操作 23 快捷键 23 编辑窗口中 23 数据录入窗口中 23 在核对命令编辑窗口 24 2 数据录入窗口 24 运算符和函数 25 操作符(计算型、逻辑型) 25 数值型函数 25 字符型函数 26 日期型函数 27 EPIDATE和EPIINFO的兼容性 29 字段类型不相同 29 变量名命名规则 29 核对命令 30 在一些计算和达式方面二者有稍微不同 30 3 介 绍 EpiData 是一个数据录入、数据核对、数据管理和数据报告系统。该软件的功能是建立数字化的调查表格,使收集的信息录入计算机更加方便。该软件不但可以在数据录入过程中对数据中的错误进行核对,而且可以在数据录入完成后对数据进行核对,比如双录入的数据核查。 本软件的目的是为数据分析阶段提供尽可能最准确的数据。这可以通过根据需要定义不同类型的变量来实现,比如只有某些限定的数字才能录入计算机等。 EpiData对三种基本的文件类型进行操作: 1. .QES 文件:调查表文件,确定数据库结构。 2. .REC 文件:数据文件,主要用于存放数据。 3. .CHK文件:核对文件,存放控制数据录入的核对规则。 EpiData 中的变量类型 自动编码变量 IDNUM 型变量是一个数值型变量,其值由计算机自动生成。其赋值原则是随着每一条记录的输入,变量值加1。在数据录入过程中它的值不能修改,只能自动增加。该变量的初始值默认为1,但是用户可以在“文件”菜单的“选项”中的“高级设置”中进行设置。 数值型变量 ### ###.## 数值型变量中只能用来接受从0到9的数字,数值可以是整数也可以是小数。一个#号代表一位数,用户可以根据需要定义所需的数值位数,但包括小数点在内最大为14位。在数据录入过程中和.QES文件中小数点“ . ” 和逗号“,”都可以作为分隔符。但是在一个字段中只能有一个分隔符,也就是说逗号不能作为分位数。 字符型变量 ___ _________ 下画线定义字符型变量的位数。字符型变量内可以输入任何字符。该类型变量的最大长度为80个字符。 大写型字符变量 , 是否型变量 是否变量内只可以存放Y, N, 1, 0 和空格。当输入 "1" 时计算机自动将其转换为"Y"。同样,当录入"0"时则自动转换成"N"。是否型变量的长度仅为1位。这意味着在.QES 文件中编码 是错误的。. 日期型变量
在EpiDATE中有两类日期型字段,分别为欧洲格式和美国格式。日期型变量的长度总是10位。在数据录入过程中,能录入的字符为数字和斜线(/)。如果所有日月年数值都录入的话则不必录入斜线。比如1999年5月4日可以在数据录入时直接键入04051999。在光标移入下一个字段后,字段内的值自动变为的04/05/1999。 此外在数据录入过程中,用户不必录入所有的10个数,如果在欧洲型字符字段中录入040599 ,则计算机自动转变为04/05/1999。如果录入的两位数的年份在50到99之间的话,则被默认为20世纪,前面加“19”。如果年份值在00和49.之间的话则被默认为21世纪, 4 前面加“20”。如果只录入0405的话,则计算机系统年份自动加入到字段中。 在录入完成后计算机会对录入的日期进行核对,以保证录入的日期值是合法的日期值。在EpiData中只认四位数年份。 今天型日期字段 今天型字段内自动的填入当前计算机的系统日期值。该类型的字段不能编辑,光标也不能移入。 注意: 建议在EpiData中今天型日期字段使用欧洲的日期格式(dmy)。这些字段类型和EpiInfo不兼容。什么意思啊 Soundex型变量 Soundex 型变量可以输入任何字符,但只有录入的最后一个词用来创建Soundex码。在需要匿名时需要使用Soundex型变量。比如参与调查人的姓名需要匿名,则要使用Soundex型变量。Soundex型变量编码总是用A-999格式,其中包括一个大写字母,一个连字符和一个3位数值。 Soundex编码的按以下产生: 1. 词的第一个字母总是保存。该词的其他字母按以下规则压缩成一个三位数: A E I O U Y H W 不编码 B F P V 编码为1 C G J K Q S X Z 编码为2 D T 编码为3 L 编码为4 M N 编码为5 R 编码为6 2. 其他字母的编码按其出现顺序排列,比如: HOLMES = H-452 ADOMOMI = A-355 3. 编码总是使用3位数,3位数编码以后的字母忽略不记: VONDERLEHR = V-536 4. 当3位数排未排满时用0补足: BALL = B-400 SHAW = S-000 5. 两个重复字母编码时按1个对待: BALL = B-400 6. 连续属于同一编码组的字母不编码: JACKSON = J-250 7. 连字符不编码: KING-SMITH = KINGSMITH = K-525 隔位符 @ 在根据.QES文件创建.REC文件时,字段的位置由.QES文件中问题的位置决定,问题在数据录入框的的左侧。但这会引起字段不能对齐,隔位符可以应用在.QES文件中来解决这一问题。请注意这个隔位符在EpiInfo系列软件中不存在,所以它会被认为是其他字符。隔位符除了影响字段的位置外对.REC 文件毫无影响。 例如: v1@#### v2@#### 5 .QES文件中的这两个语句可以产生两个4位数的字段。字段名称 ("v1" 和 "v2")显示在屏幕的左边。数据录入框和字段名称间的距离由计算机确定,默认值为40像素。这些可以在“文件”菜单的“选择项”下进行设置。 变量名称 数据文件中变量名称根据.QES 文件中的内容自动生成。EpiData中使用两种变量命名方法: 1) 问题(提示符)中的第一个词作为变量名。 2) 根据EpiInfo 软件命名变量名的规则来自动命名变量名。 变量名命名的规则由“文件”菜单的“选项”的“生成数据文件”选项卡来决定。 注意:EpiData生成的变量名最大长度为8位。EpiInfo v6.xx的变量名最大长度位10位。一般来说这不会引起问题,因为EpiData可以读入10位变量。但是当使用EpiInfo的修改数据文件功能时可能出现问题。. 自动生成变量名 如果设定的选项为自动生成变量名,EpiData自动的根据问题来产生变量名(例如左侧的文本作为变量名)。变量名是一个由A到Z字母开头的8个字母构成。变量名是从问题(提示符)开始的字母开始的。 下面是生成变量名的一些规则: 1) 大括号中的字符被作为变量名。比如一个提示符为{my} first {field}?则变量名为MYFIELD。大括号提供了一个定义变量名的有效方法。 2) 常用词会被跳过,比如that,he,and等。如提示符为did you do?则变量名为YOUDO。 3) 如果一个字段没有提示符,则计算机自动产生一个和前一个变量名相同的变量名,但是后面加一个数字。比如前一个变量的变量名为MYFIELD,则该变量名为MYFIELD1。如果该变量前无变量,则变量名自动为FIELD1。对中文提示符来说,EpiDate认为无提示符,命名按该规则执行。比如,第一个字段的变量名自动命名为FIELD1,依次变量名为FIELD2, FIELD3, FIELD4… 4) 如果问题(提示符)以数字开头,则字母N插入到数字前作为变量名中的第一个字母。 例如: 1、出生日期的提示符产生的变量名为N1。 5) 有关变量名的设置在文件/选择项/数据表显示下设置。 举例: 问题(提示符) 产生的变量名 运用的规则 State your {nation}ality NATION 规则1 Al{l} you l{i}ke is i{ce}cream LICE 规则 1 What is your name ISYOURNA 规则 2 3. 年龄 N3 规则3 把第一个词作为变量名 如果在文件/选择项/创建数据表中设置为将第一个词作为变量名,则变量名为左侧开始的第一个词。如果第一个词超过8位,则用前8位作为变量名。 举例: .QES 文件中的一行:“Enter age of patient ###”会产生变量名“Enter”,在这种功能可能比使用自动生成变量名要好一些。 6 如果变量名已经被用了,则下一个变量名上加上一个数字。比如.QES文件中的两行: v1 Enter age of patient ### v1 Height of patient ### 会产生两个变量,第一行产生的变量名为“v1”第二个变量名为“v2”,因为变量名必须唯一。 在使用将第一个词作为变量名时,最好使提示符能代表该问题的实际意义。一种简易的检查采用何种变量命名方法的操作是用“工具”菜单下的“改变变量名”查看变量名,以确定采用的变量命名规则。变量名的大小写在由文件/选择项/“创建数据文件”下进行设置。 变量标签 变量标签的作用是用来描述变量名的意义。在EpiData中,变量标签是根据.QES文件中的问题(提示符)自动产生的。 如果选择了将第一个词作为变量名,则这个词不在包括在变量标签中。中文问题(提示符)虽然不能不能作为变量名,但是可以自动的作为变量标签。 举例: .QES文件中的“v1 Age of patient ###”将产生变量名为“v1”,而变量标签为“Age of patient”。 如果设置自动产生变量名作为变量名命名规则,则变量名为“v1ageofp”而变量标签为“v1 Age of patient”。 更改变量名 通过更改变量名可以改变计算机自动生成的变量名。“更改变量名”功能可以在“工具”菜单下找到。选择需要更改变量名的数据文件。一个当前数据中有关所有变量情况的列表就会出现。其中第一列为原来的变量名,第二列为变量标签,第三列为你所希望更改的变量名。改变量名时将光标放到第三列你所希望更改变量名的变量对应的行上,然后键入新的变量名。变量名最长为8位。必须以字母开头,而且是从A到Z及从0到9的几个字符。在第三列中不需要改名的字段保持空格即可。点击保存以保留已更改的变量名。此后原始的文件自动的保存为文件名为:原文件名.old.rec. 如果同时有核对文件,则核对文件中的变量名也相应的改变,但是变量的一些注释,必须手工完成,比如GOTO命令后的变量名、COMMENT LEGAL USE后的变量名等。什么意思, 创建数据文件 创建数据文件(.REC)的方式有: 1.选择“数据输入/输出”(在那里,)选项下的“根据QES文件创建RES文件” 2.在工作程序工具条上选择“产生数据文件” 在创建数据文件前,不必要打开.QES文件。如果没有打开的.QES文件,则一个让用户选择文件的对话框出现。 在默认状态下数据文件的名称和.QES文件的名称相同,但是扩展名从.QES变为.REC。建议使用相同的文件名,但不是必须的。 在数据文件产生过程中会出现一个对话框,让用户输入对数据文件的描述,最多50个字符。这个简短的描述被称为数据库标签。数据库标签可以在数据库描述文件中出现,而且 7 当转出为Stata 文件时会作为文件的一部分保存。你会发现EpiInfo中的一些命令不能读取带标签的数据。建议用户在验证一下数据标签是否引起错误,如果引起错误则不要指定数据标签。 在数据文件生成前,如果QES文件已经在编辑窗口下打开,则可以通过选择“数据文件”菜单下的“数据表预览”选项进行预览。 注意:如果新建文件的名称和已有文件名称相同,则已有文件会被删除数据就会丢失。如果要保证在不丢失数据的条件下增加变量或改变变量类型,可以换一个文件名称或使用“根据修改的调查表更新数据文件”功能。(怎样用,,ldcques) 修改数据文件 一个已有数据的文件可以在不丢失数据的情况下修改。已经录入的数据将会以新变量格式拷贝到相同文件名称的文件中。用户可以增加字段、改变字段类型、删除字段。在主菜单的“工具”下的“根据修改的调查表更新数据文件”功能来完成操作。 按以下操作修改数据文件: 1.打开.QES文件来确定需要更改的数据文件。如果没有.QES文件的话,使用“根据数据文件创建调查表文件”功能生成.QES文件。 2.编辑.QES文件,比如增加新变量、删除变量、改变变量类型等。 3.保存.QES文件并关闭。 4.选择工具菜单下的“根据数据文件创建调查表文件”。 5.选择用来修改数据文件的.QES文件和需要修改的数据文件。 注意:如果用户删除变量或改变变量名称,将会导致数据信息丢失。这时应该仔细检查新生成的数据文件。如果发现错误,原始数据可以恢复。原始文件保存在愿文件夹下名称为文件名.OLD.REC的文件中。 EpiData支持两种生成变量名的方式,可见“变量名”一节。可以在文件菜单下的选择项进行设置。更改变量名可能会导致数据丢失。 注意:EpiInfo v6.xx 可以用10位的变量名,而EpiData只使用8个字符。所以在EpiData中修改变量名超过8个字符的数据文件时可能会导致错误。这时应该使用EpiInfo v6.xx。 应用数据文件修改功能时计算机会检查命名方式,如果和用户设置不同的话计算机会给出提示。建议用户使用与原始文件相同的变量名命名方式。原始数据文件的变量类型可以通过修改.QES文件进行修改。所有变量类型都可以转变为字符型变量或大写型字符变量。数值型变量可以转变为长度更长的数值变量。如果小数点位数减少或数字位数减少计算机都会给出提示。变量类型改变的规则如下: 整型 浮点型、字符型、大写字符型 浮点型 字符型、大写字符型 ID型 整型、浮点型、字符型、大写字符型 字符型 大写字符型 大写字符型 字符型 Soundex型 字符型、大写字符型 所有日期型 字符型、大写字符型 8 数据文件的纵向连接和横向连接 纵向连接 纵向连接(Append)用来连接数据结构相同或相似的两个数据文件。 在“数据输入/输出”菜单下选择“纵向/横向连接”选项选择需要连接的两个文件后点击“确认按钮”。这时出现的对话框会显示要连接的数据文件的一般情况,选择纵向连接后,键入连接后新文件的路径及名称。在操作过程中两个文件不发生任何改变。纵向连接有两种不同方式: 1) 新生成的数据文件和第一个原始文件(文件A)的结构相同。第二个数据文件中只有和第一个文件中相同的变量才追加到第一个文件上。 2) 新生成文件中包含第一个文件和第二个文件中所有的变量。 注意:第一个数据文件作为主数据文件,如果第一个文件和第二个文件的变量类型不同新文件中变量类型以第一个文件为准。如果第一个文件和第二个文件都有核对文件,则计算机会自动把两个核对文件合成一个核对文件。用户应根据需要对新核对文件进行修改。特别要注意labels、jumps、goto语句和if ... then .... endif语句。 在纵向连接完成后计算机会显示一个有关文件连接的。 横向连接 横向连接(Merge)可以使两个数据库结构不同的两个文件横向连接,但前提条件是这两个文件中必须有相同的标示变量或关键变量。比如一个文件中包含调查对象的家庭情况,而另一个文件中包含调查对象的实验室检查数据,但两个文件中都有一个相同变量来区别不同的调查对象,比如个人编号等。这时就可以把两个文件横向连接起来。 在“数据输入/输出”菜单下选择“纵向/横向连接”选项选择需要连接的两个文件后点击“确认按钮”。这时出现的对话框会显示要连接的数据文件的一般情况,选择横向连接后,键入连接后新文件的路径及名称。点击“确认”。两个原始文件不会有任何修改。 横向连接需要用户指定一个或多个标示变量来保证同一个调查对象的数据连接起来。最多可以指定3个标示变量。标示变量不必在核对文件中指定为KEY 或KEY UNIQUE,但是要必须保证两个文件中都存在。当选择横向连接后,计算机会把两个文件中的变量显示出来,如果没有共同变量,横向连接不会实现。另外,标示变量在数据文件中不能有重复。 文件的横向连接主要有两种方式: 1) 只有两个文件中都存在的记录连接起来。. 2) 两个文件中的数据都连接起来,这会导致很多变量的值是缺失值,因为两个数据文件中不匹配的记录不能连接。为了保证连接成功,两个文件中必须有相同字段。 注意:第一个数据文件作为主数据文件,如果第一个文件和第二个文件的变量类型不同新文件中变量类型以第一个文件为准。如果第一个文件和第二个文件都有核对文件,则计算机会自动把两个核对文件合成一个核对文件。用户应根据需要对新核对文件进行修改。特别要注意labels、jumps、goto语句和if ... then .... endif语句。 在纵向连接完成后计算机会显示一个有关文件连接的总结。 记录查找 如果知道记录号,用户可以用菜单中的“记录”下的“记录查找”功能直接查找记录,用户也何以直接按[Ctrl] + [G]后查找记录。如果不知道记录号,用户可以按[Ctrl] + [F],然后在出现的对话框中填入查找条件来查找记录。计算机总是把光标所在的字段默认为查找字 9 段,但是用户可以在下拉条下选择任何用来进行查找的字段,其中包括光标不能移入的字段,比如自动编码字段。 查找功能可以最多根据三个变量的值来查找。查找功能包括精确查找和模糊查找,查找方法可以在计算机中设置,比如是否包括打删除标记的记录等。按[F3]键或查找来按相同的查找条件进行查找。查找也可以按[Esc]键或按查找过程窗口的“取消”键来停止。如果查找缺失值则键入(.)作为查找值。用关键变量(核对文件中加KEY)来查找会使查找速度更快,但是要保证用来查找的变量都是关键变量。如果用户希望用某些变量进行查找,则可以考虑将这些变量设置为关键变量。按查找选项窗口中“重新设置”按钮,清除所有查找条件,然后重新执行查找。 数据双录入和核对 为了保证获得高质量的数据,让两个人分别对同一批问卷录入两遍是一个好方法。数据双录入完成后,可以用“数据管理”菜单下的“双录入核对”选项进行数据比较核对。在准备数据双录入过程中,可能需要复制数据库结构,该功能可以通过“工具”菜单的“拷贝数据库结构”选项完成,同时可以进行数据库结构拷贝选项设置,比如不包括字符型变量,因为字符型变量很少进行双录入。在选择完需要进行双录入核对的文件后,会出现一个对话框让用户对双录入核对进行设置。具体的操作包括: 选则关键字段 为了进行数据比较,必须至少指定一个关键字段。关键字段的作用是使两次录入的数据在比较时进行匹配。在下拉框中供选择的关键字段都是两个文件中同时存在的字段。在核对文件中指定为KEY的字段都有一个标记,这个标记会显示出来,但是被选定的关键字段在核对文件中可以没加KEY。如果不指定关键字段,则第一个文件和第二个文件按记录号进行比较,比如第一个文件中的第一条记录和第二个文件中的第一条记录比较。但是这种比较方式只有在问卷录入顺序完全相同的情况下才有意义。 选则项: 不考虑已删除的记录 在比较过程中计算机忽略已经有删除标记的记录 不考虑字符型字段 在比较过程中字符型和大写字符型字段不进行比较 不考虑字符型字段中的大小写 比如计算机认为 "Smith"和"sMiTh"相等 报告字段类型的区别 计算机会报告两个文件中变量名相同而变量类型不同的情况 不考虑第二个文件中的缺失记录 如果选择该设置,则计算机不给出第一个数据文件中有而第二个数据文件中没有的有关记录的信息。该设置非常有用,比如第二次录入只是在已经录入的问卷中选择一部分进行第二次录入时。在这种情况下要把包括全部数据的文件作为第一个文件。 按用户需要进行设置后点击“确定”按钮,两个文件就会进行比较,计算机给出比较结果。 常用核对命令 AFTER ENTRY 该核对命令用来指定在数据被录入字段后(或光标离开字段后)才执行的命令或程序。AFTER ENTRY指定一个命令块,而且必须以END来结尾。尽管没有指定AFTER ENTRY, 10 但计算机默认状态为所有命令都是在数据被录入字段后(或光标离开字段后)才执行。 举例: AFTER ENTRY ... END AFTER FILE 指定需要在数据文件被关闭时才执行的命令。参见:BEFORE FILE. 举例: AFTER FILE HELP "Remember to make a backup of the data file!" TYPE=WARNING END AFTER RECORD 指定一条记录完全录入或修改完成后才执行的命令。使用AFTER RECORD 可以来检查数据录入的正确性。如果在AFTER RECORD命令块后面还有GOTO命令,则当前记录不会保存。下面的例子是要求录入员在数据录入把个人编码作为第一个字段,在记录录完时把个人编码作为最后一个字段以另一个变量重新录入一遍,以进行控制。如果两个变量的值不相同则给出提示,记录不保存,而且光标移入第一个字段。 举例: AFTER RECORD IF (ID1<>ID2) THEN HELP "ID1=@ID1 and ID2=@ID2\n\nPlease check the data" TYPE=WARNING GOTO ID1 EXIT ENDIF IF (ID1 = .) OR (ID2 = .) THEN HELP "ID-number must be entered in ID1 and ID2" TYPE=ERROR IF ID1 = . THEN GOTO ID1 ELSE GOTO ID2 ENDIF ENDIF END AUTOJUMP 使光标无条件的跳转到另一个字段。跳转在光标离开该字段时执行。可参见JUMPS. 在该命令后可以加END或WRITE命令。AUTOJUMP END 可以使光标直接跳到最后一个字段。而AUTOJUMP WRITE可以直接调出是否存盘的对话框。 点击“是”则继续录入下一条记录。AUTOJUMP SKIPNEXTFIELD将光标移到下一个字段。 举例: AUTOJUMP [name of field to jump to] AUTOJUMP END 11 AUTOJUMP WRITE AUTOSAVE 当修改记录完成后计算机会询问是否存盘,从而让用户选择是否保存修改的记录。该过程可以通过在核对文件中加入AUTOSAVE命令来代替。该命令也可以作为程序的参数来使用。 注意:在使用AUTOSAVE后文件中的当前记录在计算机不给任何警示的情况下被覆盖掉。 举例: BEFORE FILE AUTOSAVE END BEFORE ENTRY 该命令指定在光标移入前(数据被录入前)所执行的的命令。BEFORE ENTRY指定一个命令块,而且必须以END来结尾。如果核对命令没有指定AFTER ENTRY或BEFORE ENTRY,则计算机默认为AFTER ENTRY。 举例: BEFORE ENTRY ... END BEFORE FILE 指定在数据文件打开时(还没有录入数据)执行的命令。参见AFTER FILE.。BEFORE FILE经常在需要在数据文件中定义临时变量时使用。 举例: BEFORE FILE HELP "Welcome to my data file" DEFINE varAge ### DEFINE varRefDate
END BEFORE RECORD 指定数据录入前(没有录入数据)所执行的命令。参见AFTER RECORD 举例: BEFORE RECORD varAge = 33 END CLEAR 清除指定变量的内容。如果该命令后面没有指定变量,则包含该核对命令的变量中内容被清除。该命令只清除当前记录中指定变量中的内容,而不是清除所有记录该变量的内容。 举例: 12 CLEAR CLEAR field5 COMMENTS (*) 注释语句必须以*开头。核对文件中以*开头的语句被认为是注释语句,不于执行。 COMMENT LEGAL 该命令的作用和LEGAL命令的作用相同,用来指定变量中能够录入的合法值。但是COMMENT LEGAL命令提供了一些选项,使用户在数据录入过程中可以通过按[F9]或数字键盘上的[+]来查看合法值列表,以及每个合法值的具体意义。 COMMENT LEGAL有四种不同的形式: 1) 命令块形式 COMMENT LEGAL 1 Denmark 2 USA 3 UK 4 Other END 2) 使用其他变量的变量值标签 COMMENT LEGAL USE 变量名称 3) 使用在LABELBLOCK命令中,,指定的变量值标签 COMMENT LEGAL USE 标签名称 4) 使用包含变量值和标签的数据文件 COMMENT LEGAL 数据文件名[.rec] 注意在使用其他变量或文件中指定的变量值标签时必须使用USE。 在指定数据文件时,扩展名(.REC)不是必须的。但是该数据文件中必须有两个字段指定了KEY或KEY UNIQUE。其中有KEY 1或KEY UNIQUE 1的字段为数值字段;指定为KEY 2的字段是标签字段。 COMMENT LEGAL也可以用在IF..THEN结构中。 该功能使得一个变量值标签依赖于另一个变量的值时特别有用。用户可以参考下面的例子或HIERARTEST.REC、HIERARTEST.CHK文件中命令。 也可参见下面的TYPE COMMENT 命令。如果选项 SHOW加在COMMENT LEGAL命令中,则可以输入的变量值在数据录入过程中显示出来。 举例: COMMENT LEGAL 1 Male 2 Female END COMMENT LEGAL USE [field name] SHOW COMMENT LEGAL USE [labelname] 用在IF..THEN结构中的例子: V1 *User selects a country* COMMENT LEGAL 1 USA 2 CANADA END END 13 V2 *User selects a state* IF V1=1 THEN COMMENT LEGAL 1 Alabama 2 "New York" 3 Nevada 4 Oklahoma 5 ..... END ENDIF IF V1=2 THEN COMMENT LEGAL 1 "Nova Scotia" 2 Quebec 3 .... END ENDIF END 使用数据文件时的例子: NAMELOOKUP.REC 是有两个字段的一个数据文件:ID (整型)和NAME (字符型字段)。在核对文件中ID被定义为KEY UNIQUE 1,NAME被定义为KEY 2。PATIENTDATA.REC 是根据下面的.QES文件生成: ID (病人编号) ##### HEIGHT 身高 ### WEIGHT 体重 ### 核对文件PERSONDATA.CHK(PERSONDATA.REC)中包括: ID COMMENT LEGAL NameLookup TYPE COMMENT END 当在数据录入(PATIENTDATA.REC)过程中,只有NAMELOOKUP.REC文件中包括的ID号才能作为合法值录入。当光标离开ID字段时病人的姓名会出现在字段边上。 CONFIRM 当一个字段录满后光标可以自动移入下一个字段。该功能可以在核对文件中使用CONFIRM命令完成。当使用CONFIRM命令后,用户按回车键后光标自动移入下一个字段。 CONFIRMFIELD 该命令与CONFIRM相同,但CONFIRM对所有变量起作用,而CONFIRMFIELD只对包含它的变量起作用。 DEFINE 可以定义新变量和临时变量。这些变量可以用来存放计算中的中间结果,以及把一个记录中的值赋于另一个记录。DEFINE命令有CUMULATIVE和GLOBAL两个选项。在新记 14 录录入前,Cumulative 变量保留上一条记录的变量值并将新变量值进行累加。如果不用CUMULATIVE则变量值在数据录入之前为空,新录入的数值作为变量值。GLOBAL变量不重新赋值,所以可以用来在关联文件间传递数据。参见RELATE。用DEFINE命令定义的变量的变量名最多16个字符。临时变量不保存在数据文件中。 举例: DEFINE MyTempVar #### CUMULATIVE DEFINE varSurname DEFINE tempDate
DEFINE varCity GLOBAL EXIT 终止执行命令的执行,并跳出命令块。EXIT命令可以避免很长的IF..THEN-ELSE语句。 下面的例子中的一个日期变量设置了许多核对命令,在执行完所有核对命令后EXIT命令确保AFTER ENTRY 后的核对命令在执行前其他命令都已经执行完。 举例: d1 AFTER ENTRY IF D1 = . THEN HELP "A date must be entered" TYPE=ERROR GOTO D1 EXIT ENDIF IF D1 > TODAY THEN HELP "A future date is not valid" TYPE=WARNING GOTO D1 EXIT ENDIF IF D1 < TODAY-365 THEN HELP "The date @D1 is more than one year ago. Please re-enter" TYPE=ERROR GOTO D1 EXIT ENDIF * The following commands are only executed * if all above checks indicates a valid date D2 = D1+14 V4 = Year(D1) END END GOTO 使光标移入指定的字段。 举例: GOTO field10 15 GOTO WRITEREC GOTO WRITEREC 是GOTO命令的一个特殊形式,该命令停止数据录入,并显示“是否保存数据”的对话框。 HELP 在屏幕上显示指定内容的对话框。如果用户要继续录入数据,必须点击“确认”按钮。EpiDate提供了4种不同类型的对话框,其中包括:信息型对话框、警示型对话框、确认型对话框、错误型对话框。对话框的类型可以用一个字母指定,不必用全称。在语句中插入"\n"来是提示文字换行。当前变量中的值可以显示在对话框中,方法是使用@变量名。如果需要显示@(比如电子邮件地址)则用两个@。 举例: HELP "请仔细核对数据" HELP "你的数据可能存在\n逻辑关系错误" TYPE=WARNING HELP "注意出生日期是日月年格式" TYPE=W HELP "是否确定," TYPE=CONFIRMATION HELP "有错误!" TYPE=ERROR HELP "变量V1等于@V1" HELP "EpiData的电子邮件地址为: Info@@EpiData.dk" 一个HELP命令的特殊用法是提示用户是否继续,语句为HELP "是否继续(是/否)," KEYS="YN"。这个例子可以在屏幕上显示提示信息。当用户按[Y] 后对话框消失而且数据录入继续。该操作的结果保存在提前定义的变量 RESULTLETTER 和RESULTVALUE中。如果用户按[N]则RESULTLETTER变量中存入"N" ,RESULTVALUE变量中存入数值2,因为所按字母N是KYE=“YN”中的第二个选择项。 使用KEYS的例子: V1 AFTER ENTRY HELP "Select option:\n A. Enter personal information\n B. Enter occupational information\n C. Enter health history" KEYS="123" TYPE=CONFIRMATION IF RESULTLETTER="A" THEN * The user pressed the key "A" GOTO V100 ELSE IF RESULTVALUE=2 THEN * The user pressed the key "B" GOTO V200 ENDIF IF RESULTVALUE=3 THEN GOTO V300 ENDIF END END HIDE, UNHIDE 该命令用来隐藏或显示一个字段。当字段隐藏后该屏幕上该字段改变颜色,用户不能录入数据。如果HIDE或UNHIDE后面没有指定变量,则HIDE, UNHIDE对包含该命令的字 16 段起作用。 举例: HIDE HIDE field5 UNHIDE UNHIDE field5 IF..THEN IF..THEN语句的结构是: IF <条件表达式> THEN <当条件为真时执行的命令> ENDIF 或者 IF <条件表达式> THEN <当条件为真时执行的命令> ELSE <当条件为假时执行的命令> ENDIF IF..THEN结构必须以ENDIF结尾。IF..THEN结构中可以有若干条命令,也可以嵌套其 他的IF..THEN命令。条件表达式的结果必须是只有真和假两种结果。可以使用的操作符和 函数参见操作符和函数部分。条件表达式可以有由AND、OR连接起来的几个部分。与EpiInfo 不同的是,每一部分都要有小括号括起来。比如: IF Field2 > 5 AND Field3 < 10 THEN…是 错误的,正确的应该为:IF (Field2 > 5) AND (Field3 < 10) THEN… 。在数据录入过程中, IF语句中的条件错误可以忽略。为了更正IF语句中的错误,用户可以设置错误信息。 举例: IF field1 > 10 THEN GOTO field10 ENDIF IF (Cos(field1) * Sin(field1) < 0.3) AND (field2 <> 0) THEN IF field2 < field3 THEN HELP "有错误~" GOTO ENDIF ELSE field4 = Tan(field1) GOTO field23 ENDIF IF field10 = . THEN field11 = . field12 = 0 date1 = "12/03/2001" ENDIF 17 IGNOREMISSING 如果用来计算的中间变量中有缺失值则EpiData将计算结果默认为缺失值。在核对文件中用IgnoreMissing可以改变这一默认设置。如果在核对文件中设置了IgnoreMissing则包含缺失值的计算结果为一个有效值,因为数值型变量的缺失值为0。只有在所有参与计算的变量为缺失值时计算结果才为缺失值。 举例: 一个数据文件中有四个整型字段:V1, V2, V3和V4。字段V1存有数字2,V2为缺失值,V3存放数字5。在字段V4下有一下核对命令: V4 BEFORE ENTRY V4=V1+V2+V3 END 则默认的计算结果为缺失值。如果核对命令为: V4 BEFORE ENTRY IGNOREMISSING V4=V1+V2+V3 END 则V4的计算结果为:2+0+5=7。 JUMPS 该命令的作用是设置有条件的跳转。JUMPS是一个块命令,在命令块的结尾必须有END。在JUMPS和END之间必须指定:1)用户可以录入的一个合法值2)用户希望在特定值下跳转到的目标字段。参见: AUTOJUMP。除了可以用指定目标字段外,用户还可以用END、SKIPNEXTFIELD、WRITE参数。END使光标直接跳到最后一个字段,而WRITE直接调出“是否存盘,”的对话框。SKIPNEXTFIELD使光标跳到下一个字段。一般情况下两个跳转变量之间的变量值为空或缺失值。为了保证这些变量不被“垃圾数据”填充用户可以用JUMPS RESET命令。JUMPS RESET命令清除该变量与目标变量间所有变量的值。如果在RESET后面加一个字符,则这些变量被该字符填充(除了日期型变量),比如JUMPS RESET 9 将把所有不相关字段填入9。RESET不能和AUTOJUMP一起使用,如果WRITE命令也使用则RESET命令无效。 举例: JUMPS 1 V5 2 V10 3 END 4 WRITE END JUMPS RESET 1 V5 2 SKIPNEXTFIELD END JUMPS RESET 9 18 1 V5 2 V30 END KEY 语法格式为: KEY {UNIQUE} { KEYNUMBER } 该命令可以为变量创建索引。索引存在另一个文件中,索引可以使数据查找更加快捷。如果UNIQUE出现在KEY后面,则根据该变量为每一条记录创建唯一的索引, 如果变量值有重复则该变量不能指定为KEY UNIQUE。如果指定为KEY UNIQUE变量,则该变量值不能有重复。如果只使用UNIQUE则变量值可以重复,比如象姓名、年龄、性别等变量等。 KEY 命令有四种功能: 1. 在数据量比较大时,用KEY字段查找记录的速度要快好多倍。 2. 在LIST DATA功能时指定排序顺序。 3. 确保一份问卷只录入了一次。(在加UNIQUE的情况下) 4. 在数据录入过程中,常常需要创建文件关联。用来连接两个文件的关联变量必须指定为 KEY UNIQUE字段。KEYNUMBER是可选参数,其作用是指定该变量在索引文件中的 顺序。如果不给出KEYNUMBER则索引文件中变量的顺序由KEY变量出现的顺序决 定。在数据打开等待录入时其相应的索引文件中最多包含10个索引变量。索引变量在 数据文件打开进行数据录入时自动生成。如果数据文件中的KEY字段与索引文件不匹 配,则计算机自动重建索引。也可以在“工具”菜单下重建索引。 举例: IDNUMBER KEY UNIQUE 1 END NAME KEY END LABEL / LABELBLOCK 该命令用来定义变量值标签。命令块必须以LABEL开头,然后接标签名称以及变量标签,最后由END结尾。由此定义的变量值标签可以被COMMENT LEGAL USE [labelname] 命令使用。下面的例子是如何建立变量值标签。一个名称为"yesno",另一个为"sex"。 举例: LABELBLOCK LABEL yesno 1 Yes 2 No END LABEL sex 1 Male 2 Female 9 Unknown END 19 END LEGAL 指定变量的合法值,只有指定的合法值才能录入计算机。LEGAL是一个块命令,必须以END结尾。为了避免定义重复的合法值,用户可以为一个字段定义合法值,而其他字段使用该变量的合法值列表。实现该功能的命令为:LEGAL USE field name. 下面的例子说明如何把10以内的偶数设为合法值以及如何引用已经存在的合法值列表: 举例: V1 LEGAL 2 4 END END V2 LEGAL USE V1 END LET 该变量可以为变量赋值。运算符和函数可以用在语句中。在数据录入过程中LET命令中的错误表达式会忽略。为了发现错误用户可以设置错误信息提示。注意如果LET语句中的某个变量有缺失值则接受赋值的变量也为缺失值。LET命令可以省略。 举例: LET field5 = (field2/field3)+INT(field4) field5 = (field2/field3)+INT(field4) LET date1 = "14/09/2000" (为日期型变量赋值) LET v1 = . (将v1赋值为缺失值) LET b1 = ((15/2)>4) (设置逻辑型变量b1为"Y") LET b2 = "Y" (设置逻辑型变量b2为"Y") LET b3 = False (设置逻辑型变量b3为"N") LET v3 = integer(copy(s2,1,2)) (提取字符型字段的前两位并将其赋值给整型变量v3。 MUSTENTER 保证字段不为空,既在数据录入过程中保证字段内必须录入数据。如果不录入数据则MUSTENTER将会停止数据录入过程。所以要为缺失值设定一个特定编码。 NOENTER 该命令可以禁止用户向字段内录入数据。该功能在某些变量只能存放计算结果时非常有用。 RANGE 设定变量的有效值范围。如果没有最大值或最小值,可以使用 -INFINITY 和INFINITY 作为上下限。 举例: 20 RANGE -5 5 (allows numbers between and including -5 and 5) RANGE -INFINITY 99 (allows all numbers smaller than 100) RANGE 100 INFINITY (allows all numbers greater than or equal to 100) RANGE 1/3/2001 31/3/2001 (allows dates in March 2001) RELATE 在数据录入过程中,RELATE命令可以把两个文件关联起来。如果在主数据库中遇到RELATE命令,则计算机进入关联数据库继续数据录入。RELATE命令的格式为: RELATE 关键变量 关联数据库文件名 [1] 关键变量时指在两个文件中都存在的变量。关键变量在主数据库中必须是KEY UNIQUE变量,而在关联数据库中为KEY变量。如果只允许关联数据库中1条记录与主视图中的记录相关联,则在语句中必须加[1]。不然关联数据库中所有和主数据库关键变量相同的数据都和主数据库相关联。在录完关联数据库中的数据后按 [F10]或[Ctrl]+[R],返回到主数据库中。 如果关联数据库的核对文件中有BEFORE FILE命令块,该命令块中的命令在每次进入关联数据库时都执行。如果打开的数据库和其相应的核对文件中包含两个以上的RELATE命令则所有的关联数据库都被打开。用户可以在数据录入界面上看到所有打开的数据文件。打开的数据库可以随时浏览,但是只有关联数据库被主数据库激活以后才能接受数据。在主数据库关闭后所有关联数据库全部关闭。但关闭关联数据库则主数据库并不关闭。有关RELETA命令用法的例子用户可以在HOUSE.REC、PERSON.REC和VISITS.REC文件。这些文件存放在EpiData文件夹下。 REPEAT 该命令可以使当前记录中该字段的值自动重复上一条记录中字段值。 TYPE 在数据录入过程中,该命令用来在字段边显示指定的文本,而且可以指定颜色。 命令格式: TYPE "需要显示的文本" [colour]. 可供选择的颜色有:浅绿色(Aqua)、黑色(Black)、蓝色(Blue)、Dk灰(Dkgray), 紫红色(Fuchsia)、灰色(Gray)、绿色(Green)、橙色(Lime)、Lt灰(Ltgray)、 栗色(Maroon)、海蓝色(Navy)、橄榄色(Olive)、紫色(Purple)、红色(Red)、银色(Silver)、淡黄色(Teal)、白色(White)、黄色(Yellow)。如果用户不指定颜色则默认的颜色为蓝色。如果需要在显示的文本中显示变量值则命令中用“@字段名”的形式。如果在需要显示的文本中包含@,则使用两个@。 举例: V1 AFTER ENTRY IF V1<5 THEN TYPE "小于5" RED ELSE TYPE "变量V1=@V1 大于4" END END 21 END TYPE COMMENT 该命令可以用在有COMMENT LEGAL命令的字段中。在数据录入到字段后,和录入值相对应的文字出现在字段的右边或者进入到另一个字符型字段中。该功能可以用来提示录入员注意其录入的数据是否正确。TYPE COMMENT可以替代EpiInfo 中的CODES/CODEFIELD命令 注意:TYPE COMMENT命令不能作为BEFORE / AFTER ENTRY命令块的一部分。 可供选择的颜色有:浅绿色(Aqua)、黑色(Black)、蓝色(Blue)、Dk灰(Dkgray), 紫红色(Fuchsia)、灰色(Gray)、绿色(Green)、橙色(Lime)、Lt灰(Ltgray)、 栗色(Maroon)、海蓝色(Navy)、橄榄色(Olive)、紫色(Purple)、红色(Red)、银色(Silver)、淡黄色(Teal)、白色(White)、黄色(Yellow)。命令语法规则为: TYPE COMMENT [指定颜色] 或 TYPE COMMENT 字段名称 举例: V1 COMMENT LEGAL 1 狗 2 猫 3 狮子 4 老鼠 END TYPE COMMENT YELLOW END 当录入2后,则在鼠标离开字段时“猫”出现在字段的右边。 如果用TYPE COMMENT S1命令则“猫”就写入到文本型字段S1中。 TYPE STATUSBAR 如果问卷比较大,则一屏不能完全显示。录入员在录入后面的数据时可能标示问卷的字段已经不在屏幕上显示了,这会导致录入员不知道在录入(或编辑)那号问卷的数据。为了解决此类问题,EpiDate提供了TYPE STATUSBAR命令。所有使用了TYPE STATUSBAR命令的当前变量值都显示在工具条上。用户可以使用一些选项来确定是否显示变量名。 可供选择的颜色有:浅绿色(Aqua)、黑色(Black)、蓝色(Blue)、Dk灰(Dkgray), 紫红色(Fuchsia)、灰色(Gray)、绿色(Green)、橙色(Lime)、Lt灰(Ltgray)、 栗色(Maroon)、海蓝色(Navy)、橄榄色(Olive)、紫色(Purple)、红色(Red)、银色(Silver)、淡黄色(Teal)、白色(White)、黄色(Yellow)。默认的颜色为蓝色。 举例: IDCODE TYPE STATUSBAR "IDCODE = " END IDCODE TYPE STATUSBAR "" LIME END 22 WRITENOTE 在数据录入记录文件中加入一段注释。数据文件中的内容也可以输出到数据录入记录文 件中,但需要使用@。在命令后面加入SHOW后,可以在数据录入过程中显示正在录入的 数据情况。 举例: V10 AFTER ENTRY IF V10 > 100 THEN WRITENOTE "请核对V10=@V10的量是否正确" ENDIF IF V10 > 110 THEN WRITENOTE " V10的值太大,请核对~" SHOW ENDIF END END 快捷键和鼠标操作 注意:在数据录入过程中不要使用鼠标。 数据录入过程中,核对文件对用户的鼠标操作不能进行控制,而且可能导致产生无效数据。 快捷键 为了减少鼠标操作引起的错误,建议用户使用快捷键。几乎所有的操作都可以用键盘完 成。 编辑窗口中 [Ctrl] + [N] 新建编辑窗口 [Ctrl] + [O] 打开.QES问卷 [Ctrl] + [S] 保存.QES问卷 [Ctrl] + [P] 打印编辑窗口内容 [Ctrl] + [A] 全选 [Ctrl] + [C] 拷贝 [Ctrl] + [X] 剪切 [Ctrl] + [V] 粘贴 [Ctrl] + [Z] 取消上步操作 [Ctrl] + [F] 查找 [Ctrl] + [R] 查找替换 [Ctrl] + [Q] 显示变量列表 [Ctrl] + [T] 调查表预览 数据录入窗口中 [Ctrl] + [Home] 选择第一个第一个字段 [Ctrl] + [End] 选择最后一个字段 [F6] 进入核对功能窗口 [Ctrl] + [Right arrow] 进入核对功能窗口 [Ctrl] + [L] 编辑合法值及范围 [Ctrl] + [J] 编辑跳转 23 [Ctrl] + [E] 设置或取消必须录入功能(MUSTENTER) [Ctrl] + [R] 设置或取消重复功能(REPEAT) [Ctrl] + [A] 编辑变量值标签 [Ctrl] + [D] 编辑当前字段的核对命令 [Ctrl] + [C] 把当前字段的核对命令拷贝到粘贴板 [Ctrl] + [X] 把当前字段的核对命令剪切到粘贴板 [Ctrl] + [V] 从粘贴板中插入核对命令 [Alt] + [S] 保存核对文件 [Alt] + [D] or [F9] 编辑当前字段中的核对命令 [Alt] + [X] 退出当前窗口 numeric [+] key 进入当前字段的变量值标签列表编辑 在核对命令编辑窗口 [F6] 进入数据录入窗口 [Ctrl] + [Left arrow] 进入数据录入窗口 [Enter] 进入下一个字段的核对命令 [Up arrow] 进入上一个字段的核对命令 [Down arrow] 进入下一个字段的核对命令 [Ctrl] + [Up arrow] 把上一个字段的核对命令作为当前字段的核对命令 [Ctrl] + [Down arrow] 把下一个字段的核对命令作为当前字段的核对命令 [Alt] + [S] 保存核对文件 [Alt] + [x] 退出当前窗口 数据录入窗口 [Ctrl] + [N] 新建记录 [Shift] + [Delete] 将当前记录标记为删除 [Ctrl] + [PgUp] 或 [F7] 查看上一条记录 [Ctrl] + [PgDn] 或 [F8] 查看下一条记录 [Ctrl] + [P] 打印数据表 [Ctrl] + [Alt] + [Home] 显示第一条记录 [Ctrl] + [Alt] + [End] 显示最后一条记录 [Ctrl] + [Home] 回到当前记录的第一个字段 [Ctrl] + [End] 将光标移到最后一条记录 [Ctrl] + [G] 进入到一个指定的记录 [Ctrl] + [F] 根据用户提供的内容查找记录 [F3] 重新查找(根据上一个查找设置 [Ctrl] + [F]) [Ctrl] + [左箭头] 滚动调查表 [F9]或数字键 [+] key 显示合法值列表 [F5] 打开数据录入记录 [F10] (或[Ctrl] + [R]) 在设置了关联数据库的情况下回到主主数据库 24 运算符和函数 操作符(计算型、逻辑型) 1、计算型 操作符 功能 操作对象 ^ 幂 整型、浮点型 + 加 整型、浮点型、字符型 - 减 整型、浮点型 * 乘 整型、浮点型 / 除 整型、浮点型 div 整除 整型 mod 求模 整型 2、逻辑型 操作符 功能 not 非 and 和 or 或 3、关系型 操作符 作用 = 等于 <> 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于 各种函数有各自的操作对象。所以在函数不能正常执行功能时请检查操作对象。 数值型函数 1、取绝对值函数: Abs(x): 其功能是取绝对值,操作对象为浮点型。比如: ABS(4)=4, ABS(-4)=4 2、反余切函数: ArcTan(x) 操作对象单位为角度 其他三角函数还有: 余切函数: Tan(x) = Sin(x) / Cos(x) 反正弦函数:ArcSin(x) = ArcTan (x/sqrt (1-sqr (x))) 反余弦函数:ArcCos(x) = ArcTan (sqrt (1-sqr (x)) /x) 正弦函数: Cos(x) 3、求含缺失值变量个数:CountMissing(变量或变量列表) 比如数据文件中有5个变量:V1、V2、V3、V4和V5。其中V2和V4有缺失值。下 面的几种命令写法的结果都为2。 CountMissing(V1,V2,V4) CountMissing("V1-V5") 必须使用双引号 CountMissing(V1,V2,"V3-V5") 4、计算e的x次幂:Exp(x) 5、将 Float(x): Float 将操作对象转变为浮点型。如果FIELD1="Q34.3",则Float(copy(FIELD1,2,4))=34.3。 25 6、Frac(x) 取出操作对象的分数部分。比如:Frac(3.52)=0.52 Frac(x) = x - Int(x). 7、取整函数:Int(x) 操作对象必须为浮点型,该函数取出x的整数部分。 8、Integer(x) 将操作对象转变为整型。如果:FIELD1='sb410',则Integer(copy(FIELD1,3,2))=41。 9、求自然对数:Ln(x) 10、圆周率:Pi 使用近似值:3.1415926535897932385. 10、幂函数: Power(底数,幂) 注意底数不能为0 11、判断范围函数:Range(a,b,c) 判断a是否界于b和c之间。如果a界于b和c之间则该函数的返回值为真(0),否则为假(0)。其中b和c可以变量。 例子: LET Teenager=Range(age,13,19). 12、取记录号函数:RecordNumber 该函数的功能是返回当前记录的记录号。如果当前记录是新记录的话则函数的返回值为 -1。 13、四舍五入函数:Round(x) 将带小数的数值近似到与其最接近的整数,如果该数值正好处于中间,则四舍五入结果为绝对值大的一个。 14、求平方值函数:Sqr(x) 15、求平方根函数:Sqrt(x) 16、字符转换函数:String(x) 将x转换为字符型。如果FIELD1的值为41,则'sb'+String(FIELD1) 的返回值为:'sb41'。 17、求和函数:Sum(变量或变量列表) 将操作变量的值求和。例如:Sum(V1,V2,"V10-V20")。注意用简略形式时必须用双引号。 18、截断函数:Trunc(x) 其功能是将数值取整,但其功能与取整函数和四舍五入函数稍有不同,截断函数的值总是接近0。 字符型函数 1、大写字符转换函数:Upper(S) 将小写字母转换为大写字母。 2、小写字符转换函数:Lower(S) 将大写字母转换为小写字母。 3、字符拷贝函数:Copy(S,P, N) 从字符串S中截取一段字符。其中 S 是一个字符型表达式,Index和Count是整型表达式。Copy(S,P, N)的返回只是一个字符串,字符串包含由第Index个字符起的Count 个字符。即从字符串S中的第P个字符开始抽取N个字符的字符串。如果P的位数大于S的位数则返回空字符串。 如果N的位数大于S的位数,则返回值为从第P个字符到最后一个字符为止。 4、字符位置确定函数:Pos(S,P) 在字符串P中查找字符串S第一个字母在P中的位置。返回值是一个整数值。如果在字符串P中没有找到S则返回值为0。 5、字符变量长度测定函数:Length(S) 26 返回值为字符串的长度。 6、字符转换函数: String(x) 将x转变为字符型。如果FIELD1是一个整型变量值为41,则表达式'sb'+String(FIELD1) 的结果为'sb41'。 日期型函数 EpiData将日期型变量作为浮点型,其值为从1899年12月31到所存变量值的天数。 将日期型变量按数值对待使对日期型变量进行计算有所可能。比如计算两个日期变量间的天数。 1、Date(d,m,y): 该函数需要三个函数:d,m,y。该函数的返回值为日期或者整数,依接受赋值变量的类型而定。 2、Day(D) 返回日期型变量D的日子数(从1到31的数字)。 3、DayOfWeek(D: date) 返回日期型变量D的星期数。比如:DayOfWeek("22/02/2001")=4,星期四。星期一为1,星期日为7。 4、Month(D) 返回日期型变量D的月数。(从1到12的数字) 5、Now 将当前日期作为整数部分而当前时间为小数部分。如果一个数据库有两个变量,D1 为
,T1为##.##。则可以有以下命令: LET D1=Now LET T1=Num2Time(Now). 6、Num2Time(D) 函数Num2Time将一个界于0到1之间的日期值转换为从0.00到23.59的值(格式为##.##,其整数部分表示小时,而小数部分表示分钟)。 7、Time2Num(F) 将一个范围在0.00到24.00的浮点型数值(##.##),转换为一个界于0到1的日期值,该值的为用小数形式表示的天。比如中午12.00为0.5,而下午6点(18.00)为0.75。注意要使用24小时制。 8、Today 返回今天的日期值。返回值可以是整型也可以是数值型,这依赖于接受赋值的变量类型。 9、WeekNum(D) 返回日期型变量D的星期数。比如:WeekNum("22/02/2001")=8. 10、Year(D) 返回日期型变量D的年份数。年份数为4位。 EpiData 内部将日期值处理成距离1899年12月31日的天数,1899年12月31日的值为1,2000年10月15为36814。这样使得对日期进行计算非常简单。当将日期值赋予日期型变量后,则以对应的日期格式进行显示;如果将日期赋予一个整型变量,则该整型变量中将存放距离1899年12月31日的天数。在对日期型变量赋值时有两种格式:"14/09/2000" 或(14,9,2000)。假设一个数据文件中有两个字段:D1为
格式,INT1是一个5位整型变量(#####)。 LET INT1=D1 如果D1中的值为15/10/2000,则INT1中的值为36814。 27 LET D1=INT1 如果INT1中的值为36814 ,则D1的值为15/10/2000。 LET D1=D1+7 在D1的日期值基础上增加7天,但是显示格式为22/10/2000。 LET INT1=D1+7 显示格式为整型数据,既在36814的基础上加7,为36821 LET INT1=Today - Date(1,10,2000) 计算从2000年10月1号到今天的天数。 LET INT1=(ROUND(INT((TODAY-D1)/365.25)) 如果变量D1为调查对象的出生日期,则计算结果为当前调查对象的年龄,但是进行了四舍五入。 LET D1=Date(1,INT1,2000) 如果当前记录INT1的值为4则该命令的作用是将D1赋值为01/04/2000 。 LET D1="01/04/2000"+5 D1的值为06/04/2000 EpiData没有提供时间型变量,但是两个时间函数可以用来创建浮点型变量,从而用来进行时间计算。函数Time2Num将一个范围在0.00到24.00的浮点型数值(##.##),转换为一个界于0到1的日期值,该值的为用小数形式表示的天。比如中午12.00为0.5,而下午6点(18.00)为0.75。注意要使用24小时制。 日期和时间值可以相加,因为他们的整数部分都表示天,小数部分表示时间。日期函数将处理对象的小数部分忽略不记。函数Num2Time将一个界于0到1之间的日期值转换为从0.00到23.59的值。如果该函数的操作对象大于1则,该函数只对其小数部分起作用。 用户可以参考EpiData文件夹下的两个文件DateTime.rec、DateTime.qes、DateTime.chk 根据下面的QES文件创建一个数据文件。 实验开始日期{startdate}
实验开始时间{starttime} ##.## (24小时制) 实验结束日期{enddate}
实验结束时间{endtime} ##.## (24小时制) 需要计算的值有: 实验持续天数{Days}: ### 实验持续时间:{HoursMin}: ##.## 实验持续秒数:{Seconds} : #### 假设建立了如下的核对文件: BEFORE FILE DEFINE EntryBegun ########.##### DEFINE StartTime ########.##### DEFINE EndTime ########.##### END BEFORE RECORD EntryBegun=Now ENDDATE=EntryBegun ENDTIME=NUM2TIME(EntryBegun) END STARTTIM RANGE 0 23.59 END 28 ENDTIM RANGE 0 23.59 AFTER ENTRY StartTime=STARTDAT+TIME2NUM(STARTTIM) EndTime=ENDDATE+TIME2NUM(ENDTIME) DAYS=INT(EndTime-varStartTime) HOURSMIN=NUM2TIME(EndTime-StartTime) END END DAYS NOENTER END HOURSMIN NOENTER END SECUSED BEFORE ENTRY IF SECUSED = . THEN SECUSED=(Now-EntryBegun)*86400 * 86400 seconds equals 24 hours ENDIF END END EpiDate和EpiInfo的兼容性 EpiData的开发始终坚持了和EpiInfo软件兼容的原则。但是EpiData和EpiInfo 有一些差别。两者的不同点在于: 字段类型不相同 在EpiData中使用EpiInfo时EpiData不支持以下字段类型: 1、电话号码型 2、字段的背景、颜色等设置无效 在EpiInfo中使用EpiData时EpiInfo不支持以下字段类型: 1、 2、Soundex型 3、@符号 4、字段的背景、颜色等设置无效 变量名命名规则 EpiData中变量长度为8位,而EpiInfo v6.xx 中变量长度为10位。EpiData可以使用由EpiInfo生成的变量名长度超过8的数据。 但是在使用EpiInfo v6.xx软件ENTER模块中的根据QES文件修改REC文件功能处理由EpiData生成的数据时可能会产生一些错误。因为,尽管两种软件的变量命名规则是一样的,但是位数不一样。从而会出现变量名改变的情况, 29 数据也可能丢失。 核对命令 1、IF…THEN 结构中的条件语句的要求不同。在EpiData中AND / OR两边的表达式必须加括号。例如: IF (a=2) AND (b>3) THEN .... 2、EpiInfo不支持下面所列EpiData中的核对命令和函数:CONFIRMFIELD、LABELBLOCK、AUTOSAVE、CONFIRM、LABEL、CONSISTENCYBLOCK、RECODEBLOCK、CHECK、REPORT、IGNOREMISSING、Soundex(), Now、Time2Num()、Num2Time()、CountMissing()、Range()、Sum()。 3、在语法结构上HELP 命令有微小的区别。 4、颜色设置不保留。 5、EpiData中的年龄必须为10位。. 在一些计算和表达式方面二者有稍微不同 EpiData和EpiInfo非常相似,绝大多数由EpiInfo v6.xx开发的项目都可以在EpiData中使用。如果只使用简单的核对命令则两者完全相同。 30
/
本文档为【EpiData 使用手册(中文)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索