Examples (FILE TYPE-END FILE TYPE command)
Reading multiple record types from a mixed file
FILE TYPE MIXED FILE='/data/treatmnt.txt' RECORD=RECID 1-2.
+ RECORD TYPE 21,22,23,24.
+ DATA LIST /SEX 5 AGE 6-7 DOSAGE 8-10 RESULT 12.
+ RECORD TYPE 25.
+ DATA LIST /SEX 5 AGE 6-7 DOSAGE 10-12 RESULT 15.
END FILE TYPE.
- Variable DOSAGE is read from columns 8–10 for record types 21, 22, 23, and 24 and from columns 10–12 for record type 25. RESULT is read from column 12 for record types 21, 22, 23, and 24, and from column 15 for record type 25.
- The active dataset contains values for all variables
defined on the
DATA LIST
commands for record types 21 through 25. All other record types are skipped.
Reading only one record type from a mixed file
FILE TYPE MIXED RECORD=RECID 1-2.
RECORD TYPE 23.
DATA LIST /SEX 5 AGE 6-7 DOSAGE 8-10 RESULT 12.
END FILE TYPE.
BEGIN DATA
21 145010 1
22 257200 2
25 235 250 2
35 167 300 3
24 125150 1
23 272075 1
21 149050 2
25 134 035 3
30 138 300 3
32 229 500 3
END DATA.
-
FILE TYPE
begins the file definition andEND FILE TYPE
indicates the end of file definition.FILE TYPE
specifies a mixed file type. Since the data are included betweenBEGIN DATA-END DATA
, theFILE
subcommand is omitted. The record identification variable RECID is located in columns 1 and 2. -
RECORD TYPE
indicates that records with value 23 for variable RECID will be copied into the active dataset. All other records are skipped. the program does not issue a warning when it skips records in mixed files. -
DATA LIST
defines variables on records with the value 23 for variable RECID.
A grouped file of student test scores
FILE TYPE GROUPED RECORD=#TEST 6 CASE=STUDENT 1-4.
RECORD TYPE 1.
DATA LIST /ENGLISH 8-9 (A).
RECORD TYPE 2.
DATA LIST /READING 8-10.
RECORD TYPE 3.
DATA LIST /MATH 8-10.
END FILE TYPE.
BEGIN DATA
0001 1 B+
0001 2 74
0001 3 83
0002 1 A
0002 2 100
0002 3 71
0003 1 B-
0003 2 88
0003 3 81
0004 1 C
0004 2 94
0004 3 91
END DATA.
-
FILE TYPE
identifies the file as a grouped file. As required for grouped files, all records for a single case are together in the data. The record identification variable #TEST is located in column 6. A scratch variable is specified so it won’t be saved in the active dataset. The case identification variable STUDENT is located in columns 1–4. - Because there are three record types, there are three
RECORD TYPE
commands. For eachRECORD TYPE
, there is aDATA LIST
to define variables on that record type. -
END FILE TYPE
signals the end of file definition. - The program builds four cases—one for each student. Each case includes the case identification variable plus the variables defined for each record type (the test scores). The values for #TEST are not saved in the active dataset. Thus, each case in the active dataset has four variables: STUDENT, ENGLISH, READING, and MATH.
A nested file of accident records
FILE TYPE NESTED RECORD=6 CASE=ACCID 1-4.
RECORD TYPE 1.
DATA LIST /ACC_ID 9-11 WEATHER 12-13 STATE 15-16 (A) DATE 18-24 (A).
RECORD TYPE 2.
DATA LIST /STYLE 11 MAKE 13 OLD 14 LICENSE 15-16(A) INSURNCE 18-21 (A).
RECORD TYPE 3.
DATA LIST /PSNGR_NO 11 AGE 13-14 SEX 16 (A) INJURY 18 SEAT 20-21 (A)
COST 23-24.
END FILE TYPE.
BEGIN DATA
0001 1 322 1 IL 3/13/88 /* Type 1: accident record
0001 2 1 44MI 134M /* Type 2: vehicle record
0001 3 1 34 M 1 FR 3 /* Type 3: person record
0001 2 2 16IL 322F /* vehicle record
0001 3 1 22 F 1 FR 11 /* person record
0001 3 2 35 M 1 FR 5 /* person record
0001 3 3 59 M 1 BK 7 /* person record
0001 2 3 21IN 146M /* vehicle record
0001 3 1 46 M 0 FR 0 /* person record
END DATA.
-
FILE TYPE
specifies a nested file type. The record identifier, located in column 6, is not assigned a variable name, so the default scratch variable name ####RECD is used. The case identification variable ACCID is located in columns 1–4. - Because there are three record types, there are three
RECORD TYPE
commands. For eachRECORD TYPE
, there is aDATA LIST
command to define variables on that record type. The order of theRECORD TYPE
commands defines the hierarchical structure of the file. -
END FILE TYPE
signals the end of file definition. - The program builds a case for each lowest-level (type 3) record, representing each person in the file. There can be only one type 1 record for each type 2 record, and one type 2 record for each type 3 record. Each vehicle can be in only one accident, and each person can be in only one vehicle. The variables from the type 1 and type 2 records are spread to their corresponding type 3 records.