![]() |
| ||||
*-----------------------------------------------------------------------------*
| |
| MERGE USING MULTIPLE FAMILY-INDIVIDUAL FILES |
| |
| Step 1: Subset family-level id's and selected variables |
| and subset cases from xyr-individual file |
| |
| Step 2a: Subset year-n family file |
| Step 2b: Sort year-n family file from 2a by year-n family id |
| Step 2c: Sort xyr-individual-id file from step 1 by year-n family id |
| Step 2d: Merge sorted xyr-individual-id file from 2c |
| with sorted year-n subsetted family file from 2b |
| (a one-to-many [family-to-individual] match) |
| Step 2e: Sort resulting year-n family-individual file from 2d |
| by individual ids |
| |
| ... Repeat Steps 2 for all other years |
| |
| Step 3: Merge family-individual files from step 2e |
| |
*-----------------------------------------------------------------------------.
FILE HANDLE indvars / NAME='[your.path.here]68-92ind.dat' LRECL=1888.
DATA LIST FILE=indvars /
/* 1968 */ V30001 1-4 /* Person # */ V30002 5-7
/* 1969 */ V30020 40-43 /* 1970 */ V30043 88-91
/* 1971 */ V30067 138-141 /* 1972 */ V30091 188-191
/* 1973 */ V30117 241-244 /* 1974 */ V30138 288-291
/* 1975 */ V30160 336-339 /* 1976 */ V30188 397-400
/* 1977 */ V30217 459-462 /* 1978 */ V30246 522-525
/* 1979 */ V30283 594-597 /* 1980 */ V30313 659-662
/* 1981 */ V30343 724-727 /* 1982 */ V30373 789-792
/* 1983 */ V30399 845-848 /* 1984 */ V30429 912-915
/* 1985 */ V30463 991-994 /* 1986 */ V30498 1073-1076
/* 1987 */ V30535 1157-1160 /* 1988 */ V30570 1238-1241
/* 1989 */ V30606 1320-1323 /* 1990 */ V30642 1402-1406
/* 1991 */ V30689 1513-1517 /* 1992 */ V30733 1623-1627
/* your individual variable locations here */
.
VARIABLE LABELS
V30001 "1968 INTERVIEW NUMBER" V30002 "PERSON NUMBER 68"
V30020 "1969 INTERVIEW NUMBER" V30043 "1970 INTERVIEW NUMBER"
V30067 "1971 INTERVIEW NUMBER" V30091 "1972 INTERVIEW NUMBER"
V30117 "1973 INTERVIEW NUMBER" V30138 "1974 INTERVIEW NUMBER"
V30160 "1975 INTERVIEW NUMBER" V30188 "1976 INTERVIEW NUMBER"
V30217 "1977 INTERVIEW NUMBER" V30246 "1978 INTERVIEW NUMBER"
V30283 "1979 INTERVIEW NUMBER" V30313 "1980 INTERVIEW NUMBER"
V30343 "1981 INTERVIEW NUMBER" V30373 "1982 INTERVIEW NUMBER"
V30399 "1983 INTERVIEW NUMBER" V30429 "1984 INTERVIEW NUMBER"
V30463 "1985 INTERVIEW NUMBER" V30498 "1986 INTERVIEW NUMBER"
V30535 "1987 INTERVIEW NUMBER" V30570 "1988 INTERVIEW NUMBER"
V30606 "1989 INTERVIEW NUMBER" V30642 "1990 INTERVIEW NUMBER"
V30689 "1991 INTERVIEW NUMBER" V30733 "1992 INTERVIEW NUMBER"
/* your individual variable labels here */
.
MISSING VALUES
/* your individual missing values here */
.
/* your filter for case slection, if any, here */
SAVE OUTFILE="indvars.sys".
* =====================================================
Step 2: subset data from 1968 family file (n=4802).
FILE HANDLE fam68 / NAME='[your.path.here]68fam.dat' LRECL=748.
DATA LIST FILE=fam68 /
V3 9-12
/* your 1968 variable locations here */
.
VARIABLE LABELS
V3 ="INTERVIEW NUMBER 68 1:6-9"
/* your 1968 variable labels here */
.
MISSING VALUES
/* your 1968 missing data values here */
.
SORT CASES BY V3.
SAVE OUTFILE="fam68.sys".
GET FILE="indvars.sys".
SORT CASES BY V30001.
MATCH FILES FILE=* / TABLE="fam68.sys"/ RENAME=(V3=V30001)
/ BY=V30001.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind68.sys".
* =====================================================
Step 2: subset data from 1969 family file (n=4460).
FILE HANDLE fam69 / NAME='[your.path.here]69fam.dat' LRECL=1043.
DATA LIST FILE=fam69 /
V442 4-7
/* your 1969 variable locations here */
.
VARIABLE LABELS
V442 ="1969 INT NUMBER 11:6-9"
/* your 1969 variable labels here */
.
MISSING VALUES
/* your 1969 missing data values here */
.
SORT CASES BY V442.
SAVE OUTFILE="fam69.sys".
GET FILE="indvars.sys".
SORT CASES BY V30020.
MATCH FILES FILE=* / TABLE="fam69.sys"/ RENAME=(V442=V30020)
/ BY=V30020.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind69.sys".
* =====================================================
Step 2: subset data from 1970 family file (n=4645).
FILE HANDLE fam70 / NAME='[your.path.here]70fam.dat' LRECL=1135.
DATA LIST FILE=fam70 /
V1102 4-7
/* your 1970 variable locations here */
.
VARIABLE LABELS
V1102 ="1970 INT # 21:6-9"
/* your 1970 variable labels here */
.
MISSING VALUES
/* your 1970 missing data values here */
.
SORT CASES BY V1102.
SAVE OUTFILE="fam70.sys".
GET FILE="indvars.sys".
SORT CASES BY V30043.
MATCH FILES FILE=* / TABLE="fam70.sys"/ RENAME=(V1102=V30043)
/ BY=V30043.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind70.sys".
* =====================================================
Step 2: subset data from 1971 family file (n=4840).
FILE HANDLE fam71 / NAME='[your.path.here]71fam.dat' LRECL=949.
DATA LIST FILE=fam71 /
V1802 4-7
/* your 1971 variable locations here */
.
VARIABLE LABELS
V1802 ="71 ID NO."
/* your 1971 variable labels here */
.
MISSING VALUES
/* your 1971 missing data values here */
.
SORT CASES BY V1802.
SAVE OUTFILE="fam71.sys".
GET FILE="indvars.sys".
SORT CASES BY V30067.
MATCH FILES FILE=* / TABLE="fam71.sys"/ RENAME=(V1802=V30067)
/ BY=V30067.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind71.sys".
* =====================================================
Step 2: subset data from 1972 family file (n=5060).
FILE HANDLE fam72 / NAME='[your.path.here]72fam.dat' LRECL=994.
DATA LIST FILE=fam72 /
V2402 4-7
/* your 1972 variable locations here */
.
VARIABLE LABELS
V2402 ="1972 INT # 46:6-9"
/* your 1972 variable labels here */
.
MISSING VALUES
/* your 1972 missing data values here */
.
SORT CASES BY V2402.
SAVE OUTFILE="fam72.sys".
GET FILE="indvars.sys".
SORT CASES BY V30091.
MATCH FILES FILE=* / TABLE="fam72.sys"/ RENAME=(V2402=V30091)
/ BY=V30091.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind72.sys".
* =====================================================
Step 2: subset data from 1973 family file (n=5285).
FILE HANDLE fam73 / NAME='[your.path.here]73fam.dat' LRECL=566.
DATA LIST FILE=fam73 /
V3002 4-7
/* your 1973 variable locations here */
.
VARIABLE LABELS
V3002 ="1973 INT # 59:6-9"
/* your 1973 variable labels here */
.
MISSING VALUES
/* your 1973 missing data values here */
.
SORT CASES BY V3002.
SAVE OUTFILE="fam73.sys".
GET FILE="indvars.sys".
SORT CASES BY V30117.
MATCH FILES FILE=* / TABLE="fam73.sys"/ RENAME=(V3002=V30117)
/ BY=V30117.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind73.sys".
* =====================================================
Step 2: subset data from 1974 family file (n=5517).
FILE HANDLE fam74 / NAME='[your.path.here]74fam.dat' LRECL=608.
DATA LIST FILE=fam74 /
V3402 4-7
/* your 1974 variable locations here */
.
VARIABLE LABELS
V3402 ="1974 ID NUMBER"
/* your 1974 variable labels here */
.
MISSING VALUES
/* your 1974 missing data values here */
.
SORT CASES BY V3402.
SAVE OUTFILE="fam74.sys".
GET FILE="indvars.sys".
SORT CASES BY V30138.
MATCH FILES FILE=* / TABLE="fam74.sys"/ RENAME=(V3402=V30138)
/ BY=V30138.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind74.sys".
* =====================================================
Step 2: subset data from 1975 family file (n=5725).
FILE HANDLE fam75 / NAME='[your.path.here]75fam.dat' LRECL=759.
DATA LIST FILE=fam75 /
V3802 4-7
/* your 1975 variable locations here */
.
VARIABLE LABELS
V3802 ="1975 INT # 80:6-9"
/* your 1975 variable labels here */
.
MISSING VALUES
/* your 1975 missing data values here */
.
SORT CASES BY V3802.
SAVE OUTFILE="fam75.sys".
GET FILE="indvars.sys".
SORT CASES BY V30160.
MATCH FILES FILE=* / TABLE="fam75.sys"/ RENAME=(V3802=V30160)
/ BY=V30160.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind75.sys".
* =====================================================
Step 2: subset data from 1976 family file (n=5862).
FILE HANDLE fam76 / NAME='[your.path.here]76fam.dat' LRECL=1466.
DATA LIST FILE=fam76 /
V4302 4-7
/* your 1976 variable locations here */
.
VARIABLE LABELS
V4302 ="1976 ID NUMBER 6V2"
/* your 1976 variable labels here */
.
MISSING VALUES
/* your 1976 missing data values here */
.
SORT CASES BY V4302.
SAVE OUTFILE="fam76.sys".
GET FILE="indvars.sys".
SORT CASES BY V30188.
MATCH FILES FILE=* / TABLE="fam76.sys"/ RENAME=(V4302=V30188)
/ BY=V30188.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind76.sys".
* =====================================================
Step 2: subset data from 1977 family file (n=6007).
FILE HANDLE fam77 / NAME='[your.path.here]77fam.dat' LRECL=942.
DATA LIST FILE=fam77 /
V5202 4-7
/* your 1977 variable locations here */
.
VARIABLE LABELS
V5202 ="1977 ID"
/* your 1977 variable labels here */
.
MISSING VALUES
/* your 1977 missing data values here */
.
SORT CASES BY V5202.
SAVE OUTFILE="fam77.sys".
GET FILE="indvars.sys".
SORT CASES BY V30217.
MATCH FILES FILE=* / TABLE="fam77.sys"/ RENAME=(V5202=V30217)
/ BY=V30217.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind77.sys".
* =====================================================
Step 2: subset data from 1978 family file (n=6154).
FILE HANDLE fam78 / NAME='[your.path.here]78fam.dat' LRECL=980.
DATA LIST FILE=fam78 /
V5702 4-7
/* your 1978 variable locations here */
.
VARIABLE LABELS
V5702 ="1978 ID"
/* your 1978 variable labels here */
.
MISSING VALUES
/* your 1978 missing data values here */
.
SORT CASES BY V5702.
SAVE OUTFILE="fam78.sys".
GET FILE="indvars.sys".
SORT CASES BY V30246.
MATCH FILES FILE=* / TABLE="fam78.sys"/ RENAME=(V5702=V30246)
/ BY=V30246.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind78.sys".
* =====================================================
Step 2: subset data from 1979 family file (n=6373).
FILE HANDLE fam79 / NAME='[your.path.here]79fam.dat' LRECL=1039.
DATA LIST FILE=fam79 /
V6302 4-7
/* your 1979 variable locations here */
.
VARIABLE LABELS
V6302 ="1979 ID"
/* your 1979 variable labels here */
.
MISSING VALUES
/* your 1979 missing data values here */
.
SORT CASES BY V6302.
SAVE OUTFILE="fam79.sys".
GET FILE="indvars.sys".
SORT CASES BY V30283.
MATCH FILES FILE=* / TABLE="fam79.sys"/ RENAME=(V6302=V30283)
/ BY=V30283.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind79.sys".
* =====================================================
Step 2: subset data from 1980 family file (n=6533).
FILE HANDLE fam80 / NAME='[your.path.here]80fam.dat' LRECL=1100.
DATA LIST FILE=fam80 /
V6902 4-7
/* your 1980 variable locations here */
.
VARIABLE LABELS
V6902 ="1980 INTERVIEW NUMBER"
/* your 1980 variable labels here */
.
MISSING VALUES
/* your 1980 missing data values here */
.
SORT CASES BY V6902.
SAVE OUTFILE="fam80.sys".
GET FILE="indvars.sys".
SORT CASES BY V30313.
MATCH FILES FILE=* / TABLE="fam80.sys"/ RENAME=(V6902=V30313)
/ BY=V30313.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind80.sys".
* =====================================================
Step 2: subset data from 1981 family file (n=6620).
FILE HANDLE fam81 / NAME='[your.path.here]81fam.dat' LRECL=1241.
DATA LIST FILE=fam81 /
V7502 4-7
/* your 1981 variable locations here */
.
VARIABLE LABELS
V7502 ="1981 INTERVIEW NUMBER"
/* your 1981 variable labels here */
.
MISSING VALUES
/* your 1981 missing data values here */
.
SORT CASES BY V7502.
SAVE OUTFILE="fam81.sys".
GET FILE="indvars.sys".
SORT CASES BY V30343.
MATCH FILES FILE=* / TABLE="fam81.sys"/ RENAME=(V7502=V30343)
/ BY=V30343.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind81.sys".
* =====================================================
Step 2: subset data from 1982 family file (n=6742).
FILE HANDLE fam82 / NAME='[your.path.here]82fam.dat' LRECL=1116.
DATA LIST FILE=fam82 /
V8202 4-7
/* your 1982 variable locations here */
.
VARIABLE LABELS
V8202 ="1982 INTERVIEW NUMBER"
/* your 1982 variable labels here */
.
MISSING VALUES
/* your 1982 missing data values here */
.
SORT CASES BY V8202.
SAVE OUTFILE="fam82.sys".
GET FILE="indvars.sys".
SORT CASES BY V30373.
MATCH FILES FILE=* / TABLE="fam82.sys"/ RENAME=(V8202=V30373)
/ BY=V30373.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind82.sys".
* =====================================================
Step 2: subset data from 1983 family file (n=6852).
FILE HANDLE fam83 / NAME='[your.path.here]83fam.dat' LRECL=1312.
DATA LIST FILE=fam83 /
V8802 4-7
/* your 1983 variable locations here */
.
VARIABLE LABELS
V8802 ="1983 INTERVIEW NUMBER"
/* your 1983 variable labels here */
.
MISSING VALUES
/* your 1983 missing data values here */
.
SORT CASES BY V8802.
SAVE OUTFILE="fam83.sys".
GET FILE="indvars.sys".
SORT CASES BY V30399.
MATCH FILES FILE=* / TABLE="fam83.sys"/ RENAME=(V8802=V30399)
/ BY=V30399.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind83.sys".
* =====================================================
Step 2: subset data from 1984 family file (n=6918).
FILE HANDLE fam84 / NAME='[your.path.here]84fam.dat' LRECL=2000.
DATA LIST FILE=fam84 /
V10002 4-7
/* your 1984 variable locations here */
.
VARIABLE LABELS
V10002 ="1984 INTERVIEW NUMBER"
/* your 1984 variable labels here */
.
MISSING VALUES
/* your 1984 missing data values here */
.
SORT CASES BY V10002.
SAVE OUTFILE="fam84.sys".
GET FILE="indvars.sys".
SORT CASES BY V30429.
MATCH FILES FILE=* / TABLE="fam84.sys"/ RENAME=(V10002=V30429)
/ BY=V30429.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind84.sys".
* =====================================================
Step 2: subset data from 1985 family file (n=7032).
FILE HANDLE fam85 / NAME='[your.path.here]85fam.dat' LRECL=2456.
DATA LIST FILE=fam85 /
V11102 4-7
/* your 1985 variable locations here */
.
VARIABLE LABELS
V11102 ="1985 INTERVIEW NUMBER"
/* your 1985 variable labels here */
.
MISSING VALUES
/* your 1985 missing data values here */
.
SORT CASES BY V11102.
SAVE OUTFILE="fam85.sys".
GET FILE="indvars.sys".
SORT CASES BY V30463.
MATCH FILES FILE=* / TABLE="fam85.sys"/ RENAME=(V11102=V30463)
/ BY=V30463.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind85.sys".
* =====================================================
Step 2: subset data from 1986 family file (n=7018).
FILE HANDLE fam86 / NAME='[your.path.here]86fam.dat' LRECL=2216.
DATA LIST FILE=fam86 /
V12502 4-7
/* your 1986 variable locations here */
.
VARIABLE LABELS
V12502 ="1986 INTERVIEW NUMBER"
/* your 1986 variable labels here */
.
MISSING VALUES
/* your 1986 missing data values here */
.
SORT CASES BY V12502.
SAVE OUTFILE="fam86.sys".
GET FILE="indvars.sys".
SORT CASES BY V30498.
MATCH FILES FILE=* / TABLE="fam86.sys"/ RENAME=(V12502=V30498)
/ BY=V30498.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind86.sys".
* =====================================================
Step 2: subset data from 1987 family file (n=7061).
FILE HANDLE fam87 / NAME='[your.path.here]87fam.dat' LRECL=2039.
DATA LIST FILE=fam87 /
V13702 4-7
/* your 1987 variable locations here */
.
VARIABLE LABELS
V13702 ="1987 INTERVIEW NUMBER"
/* your 1987 variable labels here */
.
MISSING VALUES
/* your 1987 missing data values here */
.
SORT CASES BY V13702.
SAVE OUTFILE="fam87.sys".
GET FILE="indvars.sys".
SORT CASES BY V30535.
MATCH FILES FILE=* / TABLE="fam87.sys"/ RENAME=(V13702=V30535)
/ BY=V30535.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind87.sys".
* =====================================================
Step 2: subset data from 1988 family file (n=7114).
FILE HANDLE fam88 / NAME='[your.path.here]88fam.dat' LRECL=2721.
DATA LIST FILE=fam88 /
V14802 4-7
/* your 1988 variable locations here */
.
VARIABLE LABELS
V14802 ="1988 INTERVIEW NUMBER"
/* your 1988 variable labels here */
.
MISSING VALUES
/* your 1988 missing data values here */
.
SORT CASES BY V14802.
SAVE OUTFILE="fam88.sys".
GET FILE="indvars.sys".
SORT CASES BY V30570.
MATCH FILES FILE=* / TABLE="fam88.sys"/ RENAME=(V14802=V30570)
/ BY=V30570.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind88.sys".
* =====================================================
Step 2: subset data from 1989 family file (n=7114).
FILE HANDLE fam89 / NAME='[your.path.here]89fam.dat' LRECL=2506.
DATA LIST FILE=fam89 /
V16302 4-7
/* your 1989 variable locations here */
.
VARIABLE LABELS
V16302 ="1989 INTERVIEW NUMBER"
/* your 1989 variable labels here */
.
MISSING VALUES
/* your 1989 missing data values here */
.
SORT CASES BY V16302.
SAVE OUTFILE="fam89.sys".
GET FILE="indvars.sys".
SORT CASES BY V30606.
MATCH FILES FILE=* / TABLE="fam89.sys"/ RENAME=(V16302=V30606)
/ BY=V30606.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind89.sys".
* =====================================================
Step 2: subset data from 1990 family file (n=9371).
FILE HANDLE fam90 / NAME='[your.path.here]90fam.dat' LRECL=2333.
DATA LIST FILE=fam90 /
V17702 4-8
/* your 1990 variable locations here */
.
VARIABLE LABELS
V17702 ="1990 INTERVIEW NUMBER 90"
/* your 1990 variable labels here */
.
MISSING VALUES
/* your 1990 missing data values here */
.
SORT CASES BY V17702.
SAVE OUTFILE="fam90.sys".
GET FILE="indvars.sys".
SORT CASES BY V30642.
MATCH FILES FILE=* / TABLE="fam90.sys"/ RENAME=(V17702=V30642)
/ BY=V30642.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind90.sys".
* =====================================================
Step 2: subset data from 1991 family file (n=9363).
FILE HANDLE fam91 / NAME='[your.path.here]91fam.dat' LRECL=2336.
DATA LIST FILE=fam91 /
V19002 4-8
/* your 1991 variable locations here */
.
VARIABLE LABELS
V19002 = "1991 INTERVIEW NUMBER"
/* your 1991 variable labels here */
.
MISSING VALUES
/* your 1991 missing data values here */
.
SORT CASES BY V19002.
SAVE OUTFILE="fam91.sys".
GET FILE="indvars.sys".
SORT CASES BY V30689.
MATCH FILES FILE=* / TABLE="fam91.sys"/ RENAME=(V19002=V30689)
/ BY=V30689.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind91.sys".
* =====================================================
Step 2: subset data from 1992 family file (n=9829).
FILE HANDLE fam92 / NAME='[your.path.here]92fam.dat' LRECL=2347.
DATA LIST FILE=fam92 /
V20302 4-8
/* your 1992 variable locations here */
.
VARIABLE LABELS
V20302 = "1992 INTERVIEW NUMBER"
/* your 1992 variable labels here */
.
MISSING VALUES
/* your 1992 missing data values here */
.
SORT CASES BY V20302.
SAVE OUTFILE="fam92.sys".
GET FILE="indvars.sys".
SORT CASES BY V30733.
MATCH FILES FILE=* / TABLE="fam92.sys"/ RENAME=(V20302=V30733)
/ BY=V30733.
SORT CASES BY V30001 V30002.
SAVE OUTFILE="famind92.sys".
* =====================================================
* Step 3: match familiy-individual files by individual identifiers.
MATCH FILES
FILE=famind68.sys / FILE=famind69.sys /
FILE=famind70.sys / FILE=famind71.sys /
FILE=famind72.sys / FILE=famind73.sys /
FILE=famind74.sys / FILE=famind75.sys /
FILE=famind76.sys / FILE=famind77.sys /
FILE=famind78.sys / FILE=famind79.sys /
FILE=famind80.sys / FILE=famind81.sys /
FILE=famind82.sys / FILE=famind83.sys /
FILE=famind84.sys / FILE=famind85.sys /
FILE=famind86.sys / FILE=famind87.sys /
FILE=famind88.sys / FILE=famind89.sys /
FILE=famind90.sys / FILE=famind91.sys /
FILE=famind92.sys /
BY=V30001 V30002.
SAVE OUTFILE='fi68-92.sys'.
* =====================================================
.
Institute for Social Research | University of Michigan | Privacy | Conditions of Use