The following examples are included:
/* SAS Data Definition File */
TITLE "SDA Test Data";
FILENAME INDATA " "; /* Put name of data file between quotes */
LIBNAME LIBRARY " "; /* Put directory of data library between quotes */
PROC FORMAT LIB=LIBRARY;
VALUE age 97='97+ yrs' 99='Refused' ;
VALUE educ 8='thru 8th' 12='HS grad' 16='Col grad' 99='Refused' ;
VALUE employed 10='Fulltime' 15='Parttime' 20='Laid off' 40='Unemployed'
50='Retired' 60='Perm disabled' 65='Temp disabled'
70='Keep house' 80='Student' 90='Other' 99='Refused' ;
VALUE gender 1='Male' 2='Female' ;
VALUE income 1='< 15' 2='15' 3='15- 25' 4='25' 5='25- 35' 6='35'
7='35- 40' 8='40' 9='40- 50' 10='50' 11='50+' 81='25- 40'
82='>25' 83='>40' 84='<25' 88='DK' 91='25- 40' 92='>25'
93='>40' 94='<25' 99='Refused' ;
VALUE marital 1='Married' 2='Like married' 3='Widowed' 4='Separated'
5='Divorced' 6='Never married' 8='Don''t know' 9='Refused' ;
VALUE spend 1='Too much' 3='About right' 5='Too little' 8='Don''t know'
9='Refused' ;
VALUE spend2ff 1='Too much' 3='About right' 5='Too little' 8='Don''t know'
9='Refused' ;
VALUE spend3ff 1='Too much' 3='About right' 5='Too little' 8='Don''t know'
9='Refused' ;
VALUE spend4ff 1='Too much' 3='About right' 5='Too little' 8='Don''t know'
9='Refused' ;
VALUE eqopp 1='Agree' 5='Disagree' 8='Don''t know' 9='Refused' ;
VALUE eqrandom 1='Blacks' 2='Women' ;
VALUE ideo 1='Liberal' 3='Conservative' 5='Moderate' 7='Don''t label'
8='DK' 9='Refused' ;
VALUE party 1='Republican' 3='Democrat' 5='Independent'
6='No preference' 7='Other' 8='Don''t know' 9='Refused' ;
VALUE race 1='White' 2='Black' 3='Hispanic' 4='Native American'
5='Asian' 6='Filipino' 7='Vol: Jewish' 8='Other'
99='Refused' ;
RUN;
DATA IN (LABEL="SDA Test Data");
INFILE INDATA LRECL=72;
INPUT
#1 CASEID 5-10 charid $5-10 age 3-4
casewt 11-16 .3 educ 19-20 employed 23-24
gender 28 income 31-32 marital 36
spend 40 spend2 44 spend3 48
spend4 52 eqopp 56 eqrandom 60
ideo 64 party 68 race 71-72
;
LABEL
CASEID = 'Case ID (numeric)'
charid = 'Character version of CASEID'
age = 'Age of respondent in years'
casewt = 'Overall sampling weight'
educ = 'Education in years of schooling'
employed= 'Employment status'
gender = 'Gender of respondent'
income = 'Income of household'
marital = 'Marital status'
spend = 'Military spending'
spend2 = 'Urban problems spending'
spend3 = 'Crime reduction spending'
spend4 = 'Welfare spending'
eqopp = 'Eq opp for Blks/Wmen not job of govt'
eqrandom= 'Random number variable for eqopp'
ideo = 'Political ideology in general'
party = 'Party identification'
race = 'Race or ethnic group' ;
FORMAT age age. educ educ. employed employed.
gender gender. income income. marital marital.
spend spend. spend2 spend2ff. spend3 spend3ff.
spend4 spend4ff. eqopp eqopp. eqrandom eqrandom.
ideo ideo. party party. race race.
;
IF (age = 99) THEN age = .;
IF (educ = 99) THEN educ = .;
IF (employed = 99) THEN employed = .;
IF (income = 88 OR income = 99) THEN income = .;
IF (marital = 8 OR marital = 9) THEN marital = .;
IF (spend = 8 OR spend = 9) THEN spend = .;
IF (spend2 = 8 OR spend2 = 9) THEN spend2 = .;
IF (spend3 = 8 OR spend3 = 9) THEN spend3 = .;
IF (spend4 = 8 OR spend4 = 9) THEN spend4 = .;
IF (eqopp = 8 OR eqopp = 9) THEN eqopp = .;
IF (ideo = 8 OR ideo = 9) THEN ideo = .;
IF (party = 8 OR party = 9) THEN party = .;
IF (race = 88 OR race = 99) THEN race = .;
PROC DATASETS;
CONTENTS DATA=IN POSITION;
TITLE 'CONTENTS OF ALL VARIABLES';
RUN;
/* SPSS Data Definition File
TITLE "SDA Test Data".
DATA LIST fixed records=1
FILE="x" /* Replace 'x' with full path name of your input data file.
/1 CASEID 5-10 charid 5-10 (A) age 3-4
casewt 11-16 (3) educ 19-20 employed 23-24
gender 28 income 31-32 marital 36
spend 40 spend2 44 spend3 48
spend4 52 eqopp 56 eqrandom 60
ideo 64 party 68 race 71-72
.
VARIABLE LABELS
CASEID 'Case ID (numeric)' /
charid 'Character version of CASEID' /
age 'Age of respondent in years' /
casewt 'Overall sampling weight' /
educ 'Education in years of schooling' /
employed 'Employment status' /
gender 'Gender of respondent' /
income 'Income of household' /
marital 'Marital status' /
spend 'Military spending' /
spend2 'Urban problems spending' /
spend3 'Crime reduction spending' /
spend4 'Welfare spending' /
eqopp 'Eq opp for Blks/Wmen not job of govt' /
eqrandom 'Random number variable for eqopp' /
ideo 'Political ideology in general' /
party 'Party identification' /
race 'Race or ethnic group' /
.
VALUE LABELS
age 97 '97+ yrs' 99 'Refused' /
educ 8 'thru 8th' 12 'HS grad' 16 'Col grad' 99 'Refused' /
employed 10 'Fulltime' 15 'Parttime' 20 'Laid off' 40 'Unemployed'
50 'Retired' 60 'Perm disabled' 65 'Temp disabled'
70 'Keep house' 80 'Student' 90 'Other' 99 'Refused' /
gender 1 'Male' 2 'Female' /
income 1 '< 15' 2 '15' 3 '15- 25' 4 '25' 5 '25- 35' 6 '35' 7 '35- 40'
8 '40' 9 '40- 50' 10 '50' 11 '50+' 81 '25- 40' 82 '>25' 83 '>40'
84 '<25' 88 'DK' 91 '25- 40' 92 '>25' 93 '>40' 94 '<25'
99 'Refused' /
marital 1 'Married' 2 'Like married' 3 'Widowed' 4 'Separated'
5 'Divorced' 6 'Never married' 8 'Don''t know' 9 'Refused' /
spend 1 'Too much' 3 'About right' 5 'Too little' 8 'Don''t know'
9 'Refused' /
spend2 1 'Too much' 3 'About right' 5 'Too little' 8 'Don''t know'
9 'Refused' /
spend3 1 'Too much' 3 'About right' 5 'Too little' 8 'Don''t know'
9 'Refused' /
spend4 1 'Too much' 3 'About right' 5 'Too little' 8 'Don''t know'
9 'Refused' /
eqopp 1 'Agree' 5 'Disagree' 8 'Don''t know' 9 'Refused' /
eqrandom 1 'Blacks' 2 'Women' /
ideo 1 'Liberal' 3 'Conservative' 5 'Moderate' 7 'Don''t label'
8 'DK' 9 'Refused' /
party 1 'Republican' 3 'Democrat' 5 'Independent' 6 'No preference'
7 'Other' 8 'Don''t know' 9 'Refused' /
race 1 'White' 2 'Black' 3 'Hispanic' 4 'Native American' 5 'Asian'
6 'Filipino' 7 'Vol: Jewish' 8 'Other' 99 'Refused' /
.
MISSING VALUES age (99).
MISSING VALUES educ (99).
MISSING VALUES employed (99).
MISSING VALUES income (88,99).
MISSING VALUES marital (8,9).
MISSING VALUES spend (8,9).
MISSING VALUES spend2 (8,9).
MISSING VALUES spend3 (8,9).
MISSING VALUES spend4 (8,9).
MISSING VALUES eqopp (8,9).
MISSING VALUES ideo (8,9).
MISSING VALUES party (8,9).
MISSING VALUES race (88,99).
/* Stata Data Definition File
*******************************************************************
* Stata "do-file" file with labels and missing data specifications
*
* Note that the data dictionary is given at the end of this file.
* It is used as a separate file, but it is combined with the
* "do-file" for conversion to DDI or DDL.
*******************************************************************
label data "SDA Test Data"
#delimit ;
label define age 97 "97+ yrs" 99 "Refused" ;
label define educ 8 "thru 8th" 12 "HS grad" 16 "Col grad" 99 "Refused" ;
label define employed 10 "Fulltime" 15 "Parttime" 20 "Laid off"
40 "Unemployed" 50 "Retired" 60 "Permanently disabled"
65 "Temporarily disables" 70 "Keep house" 80 "Student"
90 "Other" 99 "Refused" ;
label define gender 1 "Male" 2 "Female" ;
label define income 1 "< 15" 2 "15" 3 "15- 25" 4 "25" 5 "25- 35" 6 "35"
7 "35- 40" 8 "40" 9 "40- 50" 10 "50" 11 "50+"
81 "25- 40" 82 ">25" 83 ">40" 84 "<25" 88 "Don't know"
91 "25- 40" 92 ">25" 93 ">40" 94 "<25" 99 "Refused" ;
label define marital 1 "Married" 2 "Like married" 3 "Widowed" 4 "Separated"
5 "Divorced" 6 "Never married" 8 "Don't know"
9 "Refused" ;
label define spend 1 "Too much" 3 "About right" 5 "Too little"
8 "Don't know" 9 "Refused" ;
label define spend2 1 "Too much" 3 "About right" 5 "Too little"
8 "Don't know" 9 "Refused" ;
label define spend3 1 "Too much" 3 "About right" 5 "Too little"
8 "Don't know" 9 "Refused" ;
label define spend4 1 "Too much" 3 "About right" 5 "Too little"
8 "Don't know" 9 "Refused" ;
label define eqopp 1 "Agree" 5 "Disagree" 8 "Don't know" 9 "Refused" ;
label define eqrandom 1 "Blacks" 2 "Women" ;
label define ideo 1 "Liberal" 3 "Conservative" 5 "Moderate"
7 "Never think of myself in those terms"
8 "Don't know" 9 "Refused" ;
label define party 1 "Republican" 3 "Democrat" 5 "Independent"
6 "No preference" 7 "Other" 8 "Don't know" 9 "Refused" ;
label define race 1 "White" 2 "Black" 3 "Hispanic" 4 "Native American"
5 "Asian" 6 "Filipino" 99 "Refused" ;
#delimit cr
*******************************************************************
infile using X
* Replace 'X' with the name of the dictionary file.
*******************************************************************
* The md, min and max specifications were translated
* into the following "REPLACE...IF" statements:
replace age = . if (age == 99)
replace educ = . if (educ == 99)
replace educ = . if (educ > 17)
replace employed = . if (employed == 99)
replace income = . if (income == 88 | income == 99)
replace income = . if (income > 11)
replace marital = . if (marital == 8 | marital == 9)
replace spend = . if (spend == 8 | spend == 9)
replace spend2 = . if (spend2 == 8 | spend2 == 9)
replace spend3 = . if (spend3 == 8 | spend3 == 9)
replace spend4 = . if (spend4 == 8 | spend4 == 9)
replace eqopp = . if (eqopp == 8 | eqopp == 9)
replace ideo = . if (ideo == 8 | ideo == 9)
replace ideo = . if (ideo > 5)
replace party = . if (party == 8 | party == 9)
replace party = . if (party > 5)
replace race = . if (race == 88 | race == 99)
dictionary using Y {
*****************************************************************
* This dictionary is used as a separate file, but it is combined
* with the "do-file" file for conversion to DDI or DDL.
*****************************************************************
* Records per case:
_lines(1)
_line(1)
_column(5) long CASEID %6f "Case ID (numeric)"
_column(5) str6 charid %6s "Character version of CASEID"
_column(3) int age :age %2f "Age of respondent in years"
_column(11) float casewt %6.3f "Overall sampling weight"
_column(19) int educ :educ %2f "Education in years of schooling"
_column(23) int employed :employed %2f "Employment status"
_column(28) int gender :gender %1f "Gender of respondent"
_column(31) int income :income %2f "Income of household"
_column(36) int marital :marital %1f "Marital status"
_column(40) int spend :spend %1f "Military spending"
_column(44) int spend2 :spend2 %1f "Urban problems spending"
_column(48) int spend3 :spend3 %1f "Crime reduction spending"
_column(52) int spend4 :spend4 %1f "Welfare spending"
_column(56) int eqopp :eqopp %1f "Eq opp for Blks/Wmen not job of govt"
_column(60) int eqrandom :eqrandom %1f "Random number variable for eqopp"
_column(64) int ideo :ideo %1f "Political ideology in general"
_column(68) int party :party %1f "Party identification"
_column(71) int race :race %2f "Race or ethnic group"
}
path = .
title = SDA Test Data
records/case= 1
reclen = 72
*
name = CASEID
label = Case ID (numeric)
type = numeric
record = 1
column = 5
width = 6
*
name = charid
label = Character version of CASEID
type = character
record = 1
column = 5
width = 6
*
name = age
label = Age of respondent in years
type = numeric
record = 1
column = 3
width = 2
md = 99
catlabels = 97 97+ yrs
99 Refused
*
name = casewt
label = Overall sampling weight
type = numeric
record = 1
column = 11
width = 6
decimals = 3
*
name = educ
label = Education in years of schooling
type = numeric
record = 1
column = 19
width = 2
md = 99
catlabels = 8 thru 8th
12 HS grad
16 Col grad
99 Refused
*
name = employed
label = Employment status
type = numeric
record = 1
column = 23
width = 2
md = 99
catlabels = 10 Fulltime
15 Parttime
20 Laid off
40 Unemployed
50 Retired
60 Perm disabled
65 Temp disabled
70 Keep house
80 Student
90 Other
99 Refused
*
name = gender
label = Gender of respondent
type = numeric
record = 1
column = 28
width = 1
catlabels = 1 Male
2 Female
*
name = income
label = Income of household
type = numeric
record = 1
column = 31
width = 2
md = 88,99
catlabels = 1 < 15
2 15
3 15- 25
4 25
5 25- 35
6 35
7 35- 40
8 40
9 40- 50
10 50
11 50+
81 25- 40
82 >25
83 >40
84 <25
88 DK
91 25- 40
92 >25
93 >40
94 <25
99 Refused
*
name = marital
label = Marital status
type = numeric
record = 1
column = 36
width = 1
md = 8,9
catlabels = 1 Married
2 Like married
3 Widowed
4 Separated
5 Divorced
6 Never married
8 Don't know
9 Refused
*
name = spend
label = Military spending
type = numeric
record = 1
column = 40
width = 1
md = 8,9
catlabels = 1 Too much
3 About right
5 Too little
8 Don't know
9 Refused
*
name = spend2
label = Urban problems spending
type = numeric
record = 1
column = 44
width = 1
md = 8,9
catlabels = 1 Too much
3 About right
5 Too little
8 Don't know
9 Refused
*
name = spend3
label = Crime reduction spending
type = numeric
record = 1
column = 48
width = 1
md = 8,9
catlabels = 1 Too much
3 About right
5 Too little
8 Don't know
9 Refused
*
name = spend4
label = Welfare spending
type = numeric
record = 1
column = 52
width = 1
md = 8,9
catlabels = 1 Too much
3 About right
5 Too little
8 Don't know
9 Refused
*
name = eqopp
label = Eq opp for Blks/Wmen not job of govt
type = numeric
record = 1
column = 56
width = 1
md = 8,9
catlabels = 1 Agree
5 Disagree
8 Don't know
9 Refused
*
name = eqrandom
label = Random number variable for eqopp
type = numeric
record = 1
column = 60
width = 1
catlabels = 1 Blacks
2 Women
*
name = ideo
label = Political ideology in general
type = numeric
record = 1
column = 64
width = 1
md = 8,9
catlabels = 1 Liberal
3 Conservative
5 Moderate
7 Don't label
8 DK
9 Refused
*
name = party
label = Party identification
type = numeric
record = 1
column = 68
width = 1
md = 8,9
catlabels = 1 Republican
3 Democrat
5 Independent
6 No preference
7 Other
8 Don't know
9 Refused
*
name = race
label = Race or ethnic group
type = numeric
record = 1
column = 71
width = 2
md = 88,99
catlabels = 1 White
2 Black
3 Hispanic
4 Native American
5 Asian
6 Filipino
7 Vol: Jewish
8 Other
99 Refused