Creating SAS Data Sets
Creating SAS Data Sets
Section 6.1
Reading Raw Data Files:
Column Input
Objectives
Raw Data
File
Other Software
File
Conversion Process
FSEDIT
FSVIEW
DATA
Step
SAS
Data Set
SAS/ACCESS
Software
1
1
2
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
DATA Step
data SAS-data-set-name;
infile 'raw-data-filename';
input input-specifications;
run;
Dest First
Class
12/11/00 LAX
20
12/11/00 DFW
20
12/12/00 LAX
15
Economy
137
131
170
...
10
11
-15
15.4
+1.23
1.23E3
-1.23E-3
12
1
1
2
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
98212/12/00dfw 5 85
43912/13/00LAX 14196
98212/13/00DFW 15116
43112/14/00LaX 17166
98212/14/00DFW 7 88
11412/15/00LAX
187
98212/15/00DFW 14 31
DATA Step
data SAS-data-set-name;
infile 'raw-data-filename';
input variable <$> startcol-endcol ...;
run;
SAS Data Set
13
Flight Date
Dest
439
921
114
LAX
DFW
LAX
12/11/00
12/11/00
12/12/00
FirstClass Economy
20
20
15
137
131
170
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20;
14
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20;
15
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20;
16
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20;
17
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20;
18
...
19
c06s1d1
20
c06s1d2
21
Flight Date
$ 3
$ 8
22
Dest
$ 3
FirstClass Economy
N 8
N 8
23
...
24
...
PDV
Flight
$ 3
25
...
PDV
Flight Date
$ 3
$ 8
26
...
PDV
Flight Date
$ 3
$ 8
27
Dest
$ 3
...
PDV
Flight Date
$ 3
$ 8
28
Dest
$ 3
FirstClass
N 8
...
PDV
Flight Date
$ 3
$ 8
29
Dest
$ 3
FirstClass Economy
N 8
N 8
...
PDV
Flight Date
Dest
30
Flight Date
$ 3
$ 8
Dest
$ 3
FirstClass Economy
FirstClass Economy
N 8
N 8
...
PDV
Flight Date
dfwlax
Flight Date
31
Dest
FirstClass Economy
Dest
FirstClass Economy
Flight Date
Dest
FirstClass Economy
.
.
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
32
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
Dest
FirstClass Economy
.
.
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
33
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
439
Dest
FirstClass Economy
.
.
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
34
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
439
12/11/00
Dest
FirstClass Economy
.
.
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
35
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
.
.
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
36
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
.
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
37
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
Flight Date
Dest
FirstClass Economy
dfwlax
PDV
Input Buffer
38
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
Automatic
output
Flight
Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
dfwlax
PDV
Input Buffer
39
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight
$ 1-3 Date $ 4-11
Automatic
return
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
Dest
FirstClass Economy
.
.
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
dfwlax
PDV
Input Buffer
40
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
Reinitialize variables to
11412/12/00LAX 15170
missing
...
Flight Date
Dest
FirstClass Economy
.
.
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
dfwlax
PDV
Input Buffer
41
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
Dest
FirstClass Economy
.
.
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
dfwlax
PDV
Input Buffer
42
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
921
12/11/00
Dest
DFW
FirstClass Economy
20
131
Flight Date
439
12/11/00
Dest
LAX
FirstClass Economy
20
137
dfwlax
PDV
Input Buffer
43
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
921
12/11/00
Dest
DFW
FirstClass Economy
20
131
Automatic
output
Flight
Date
439
12/11/00
921
12/11/00
Dest
LAX
DFW
FirstClass Economy
20
137
20
131
dfwlax
PDV
Input Buffer
44
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight
$ 1-3 Date $ 4-11
Automatic
return
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
...
Flight Date
dfwlax
PDV
Input Buffer
45
Flight
439
921
114
Date
12/11/00
12/11/00
12/12/00
Dest
FirstClass Economy
.
.
Dest
LAX
DFW
LAX
FirstClass Economy
20
137
20
131
15
170
Raw Data
data work.dfwlax;
infile 'raw-data-file';
input Flight $ 1-3 Date $ 4-11
Dest $ 12-14 FirstClass 15-17
Economy 18-20; 43912/11/00LAX 20137
run;
92112/11/00DFW 20131
11412/12/00LAX 15170
End of
File?
No
Yes
Next
Step
47
Obs
Flight
Date
Dest
1
2
3
4
5
6
7
8
9
10
439
921
114
982
439
982
431
982
114
982
12/11/00
12/11/00
12/12/00
12/12/00
12/13/00
12/13/00
12/14/00
12/14/00
12/15/00
12/15/00
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
First
Class
20
20
15
5
14
15
17
7
.
14
Economy
137
131
170
85
196
116
166
88
187
31
c06s1d1
48
49
Flight
439
921
114
982
439
982
431
982
114
982
Date
Dest
12/11/00
12/11/00
12/12/00
12/12/00
12/13/00
12/13/00
12/14/00
12/14/00
12/15/00
12/15/00
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
First
Class
20
20
15
5
14
15
17
7
.
14
Economy
137
131
170
85
196
116
166
88
187
31
c06s1d2
Objectives
50
51
52
+n
An informat specifies
53
<$>informat-namew.<d>
Informat
name
Total width of
the field to
read
54
Number of
decimal places
Required
delimiter
Selected Informats
8. or 8.0
Informat
8.0
8.0
8.2
Informat
8.2
8.2
55
Selected Informats
$8.
Informat
$8.
56
Informat
$CHAR8.
Selected Informats
COMMA7.
MMDDYY8.
57
Informat
COMMA7.0
Informat
MMDDYY8.
01JAN1961
366
01/01/1960
01/01/1961
format
01/01/1959
58
...
59
Converted
Informat
Value
MMDDYY10.
MMDDYY8.
15277
DATE9.
15277
DDMMYY10.
Number of days between
01JAN1960 and 29OCT2001
DATA Step
data SAS-data-set-name;
infile 'raw-data-filename';
input pointer-control variable informat-name;
run;
60
Flight Date
Dest
439
921
114
LAX
DFW
LAX
14955
14955
14956
137
131
170
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input @1 Flight $3. @4 Date mmddyy8.
@12 Dest $3. @15 FirstClass 3.
@18 Economy 3.;
61
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input @1 Flight $3. @4 Date mmddyy8.
@12 Dest $3. @15 FirstClass 3.
@18 Economy 3.;
62
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input @1 Flight $3. @4 Date mmddyy8.
@12 Dest $3. @15 FirstClass 3.
@18 Economy 3.;
63
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input @1 Flight $3. @4 Date mmddyy8.
@12 Dest $3. @15 FirstClass 3.
@18 Economy 3.;
64
...
1---5----0----5----0
43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
input @1 Flight $3. @4 Date mmddyy8.
@12 Dest $3. @15 FirstClass 3.
@18 Economy 3.;
65
...
1---5----0----5----0
Raw Data File 43912/11/00LAX 20137
92112/11/00DFW 20131
11412/12/00LAX 15170
data work.dfwlax;
infile 'raw-data-file';
input @1 Flight $3. @4 Date mmddyy8.
@12 Dest $3. @15 FirstClass 3.
@18 Economy 3.;
run;
66
c06s2d1
Obs
1
2
3
4
5
6
7
8
9
10
67
Flight
Date
Dest
439
921
114
982
439
982
431
982
114
982
14955
14955
14956
14956
14957
14957
14958
14958
14959
14959
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
First
Class
20
20
15
5
14
15
17
7
.
14
Economy
137
131
170
85
196
116
166
88
187
31
c06s2d1
68
Flight
439
921
114
982
439
982
431
982
114
982
Date
11DEC2000
11DEC2000
12DEC2000
12DEC2000
13DEC2000
13DEC2000
14DEC2000
14DEC2000
15DEC2000
15DEC2000
Dest
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
First
Class
Economy
20
20
15
5
14
15
17
7
.
14
137
131
170
85
196
116
166
88
187
31
c06s2d2
Objectives
69
70
71
Objectives
72
73
74
c06s4d1
75
c06s4d1
76
77
c06s4d1
78
Obs
Flight
1
2
3
4
5
6
7
8
9
10
439
921
114
982
439
982
431
982
114
982
Date
12/11/2000
12/11/2000
12/12/2000
12/12/2000
12/13/2000
12/13/2000
12/14/2000
12/14/2000
12/15/2000
12/15/2000
Destination
First
Class
Passengers
Economy
Passengers
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
20
20
15
5
14
15
17
7
.
14
137
131
170
85
196
116
166
88
187
31
79
c06s4d2
80
c06s4d2
81
Obs
Flight
1
2
3
4
5
6
7
8
9
10
439
921
114
982
439
982
431
982
114
982
Date
12/11/2000
12/11/2000
12/12/2000
12/12/2000
12/13/2000
12/13/2000
12/14/2000
12/14/2000
12/15/2000
12/15/2000
Destination
First
Class
Passengers
Economy
Passengers
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
20
20
15
5
14
15
17
7
.
14
137
131
170
85
196
116
166
88
187
31
c06s4d2
82
c06s4d3
Obs
1
2
3
4
5
6
7
8
9
10
83
Flight
439
921
114
982
439
982
431
982
114
982
Date
11DEC2000
11DEC2000
12DEC2000
12DEC2000
13DEC2000
13DEC2000
14DEC2000
14DEC2000
15DEC2000
15DEC2000
Destination
First
Class
Passengers
LAX
DFW
LAX
dfw
LAX
DFW
LaX
DFW
LAX
DFW
20
20
15
5
14
15
17
7
.
14
Economy
Passengers
137
131
170
85
196
116
166
88
187
31
Section 6.5
Changing Variable Attributes
Objectives
85
86
87
PROC
PROCDATASETS
DATASETS LIBRARY=libref
LIBRARY=libref ;;
MODIFY
MODIFY SAS-data-set
SAS-data-set ;;
RENAME
RENAME old-name-1=new-name-1
old-name-1=new-name-1
<.
<... .. old-name-n=new-name-n>;
old-name-n=new-name-n>;
LABEL
LABELvariable-1='label-1'
variable-1='label-1'
<.
<..... variable-n='label-n'>;
variable-n='label-n'>;
FORMAT
FORMATvariable-list-1
variable-list-1 format-1
format-1
<.
<..... variable-list-n
variable-list-n format-n>;
format-n>;
INFORMAT
INFORMATvariable-list-1
variable-list-1 informat-1
informat-1
<.
<..... variable-list-n
variable-list-n informat-n>;
informat-n>;
RUN;
RUN;
88
89
c06s5d1
90
c06s5d1
91
c06s5d1
Objectives
92
Business Task
The flight data for Dallas and Los Angeles are in an
Excel spreadsheet. Read the data into a SAS data set.
Excel Spreadsheet
93
Dest
FirstClass Economy
12/11/00
12/11/00
12/12/00
LAX
DFW
LAX
20
20
15
137
131
170
94
95
96
97
c06s6d2
98
c06s6d3