Dear Jens Many thanks for the help. Much appreciated.
SK
-----Original Message----- From: epidata-list-request@lists.umanitoba.ca To: epidata-list@lists.umanitoba.ca Sent: Wed, 16 Apr 2008 7:21 pm Subject: EpiData-list Digest, Vol 54, Issue 6
Send EpiData-list mailing list submissions to epidata-list@lists.umanitoba.ca
To subscribe or unsubscribe via the World Wide Web, visit http://lists.umanitoba.ca/mailman/listinfo/epidata-list or, via email, send a message with subject or body 'help' to epidata-list-request@lists.umanitoba.ca
You can reach the person managing the list at epidata-list-owner@lists.umanitoba.ca
When replying, please edit your Subject line so it is more specific than "Re: Contents of EpiData-list digest..."
EpiData-list mailing list ___________________________________
Today's Topics:
1. Re: Re: New user trying to implement a check algoritm (epidata-list@lists.umanitoba.ca) 2. Re: Worked examples of EpiData Analysis: command line (epidata-list@lists.umanitoba.ca)
----------------------------------------------------------------------
Message: 1 Date: Tue, 15 Apr 2008 20:44:53 -0400 From: epidata-list@lists.umanitoba.ca Subject: Re: [EpiData-list] Re: New user trying to implement a check algoritm To: epidata-list@lists.umanitoba.ca Message-ID: 48054C05.4050809@sympatico.ca Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Range checks do work on string variables, since EpiData just compares the internal values. However, EpiData will not care whether the strings have non-numeric values within this range. For example, the following will pass the RANGE test:
1993ABCDEFGH
since this is 12 digits and internally any string starting with "1993" will lie between "1992xxxxxxxx" and "2018xxxxxxxx"
EpiData will detect an error and assign a missing value to PRNx variables when this happens. The default option is to NOT notify you of errors in check files at data entry, so you should also check that CHECKSUM <> . If only the last digit (the checksum value) is bad, CHECKSUM <> PRN12 will tell you there is an error
In my experience, the internal precision of EpiData will let you use 12-digit integers. The RANGE checks will then work fine and entry of non numbers is impossible.
So another way to guarantee entry in this range is
define preQ2A ____________ global
preQ2 Range 1991...... etc preQ2A = string(preQ2)
and work everything on preQ2A, since it is easy to pick apart strings using the COPY function.
Where you can get into trouble with long integers is when you start to do arithmetic with them.
Jamie
Gustaf wrote:
I've now redefined preQ2 to be a string variable, but the RANGE check still works. How is this possible?
preQ2 RANGE 199201010001 201801010001 END
------------------------------
Message: 2 Date: Tue, 15 Apr 2008 20:57:01 -0400 From: epidata-list@lists.umanitoba.ca Subject: Re: [EpiData-list] Worked examples of EpiData Analysis: command line To: epidata-list@lists.umanitoba.ca Message-ID: 48054EDD.2070706@sympatico.ca Content-Type: text/plain; charset=ISO-8859-1; format=flowed
There is no / before the if This is a case of EpiData having somewhat simpler and more natural syntax. The / is reserved for options.
So:
list idno sr if idno < 10
There is only one option with list (/no to not show record numbers), so:
list idno sr /no if idno < 10
Syntax for this use of IF is in the command reference under "temporary selection"
The error messages with syntax problems are sometimes misleading.
Jamie
SK wrote:
here is what I did and the error message: . read Loading data F:\EpiExam\blood.rec, please wait.. File name : F:\EpiExam\blood.rec Fields: 5 Total records: 2166 Included: 2166 . List?????? idno? sr? /if idno<10 = sign expected at idno
------------------------------
________________________________________ EpiData-list@lists.umanitoba.ca http://lists.umanitoba.ca/mailman/listinfo/epidata-list
End of EpiData-list Digest, Vol 54, Issue 6 *******************************************