1.
2.
3.
4.
5.
6.
7.
8.
SAS
SAS
SAS
SAS
SAS
SAS
SAS
2
SAS
1. ( SAS
2.
3. SAS AWS(SAS )
4.
( SAS )
SAS
SAS
SAS
SAS AWS--
PGM
SAS
; SAS ,
SAS ; SAS
.
LOG
, SAS
, .
OUTPUT ,
; ;
.
V9
SAS
F5)
F3
F4
(F6)
(F7) SAS9.0+
Ctrl+Tab
6
SAS
(Explorer)
SAS
SAS
(
)
SAS
(Result)
SAS
.
,
.
.
(Tools) (Options)
(Preferences) ( View) (
)
7
( )
WPGM
F5
WEDIT
PGM
(LOG)
LOG
OUTPUT
ODSRESULTS
SAS
EXPLORER
F6
F7
HELP
F1
KEYS
F9
OPTIONNS
SUBMIT
RECALL
F3
F4
11
SAS
SAS :
D:\program\ch02_01.sas
(1)
(File)=> (Open)
,
, .
(2) :
include d:\program\ch02_01.sas
12
SAS
ch02_01.sas
title 'sas0101.sas';
title
data
means
sort
ttest
data class;
input name $ sex $ age height weight;
cards;
Mary
F
15
66.5
112.0
Thomas
M
11
57.5
85.0
;
proc means data=class mean max min;
var age height weight;
run;
proc sort data=class;
by sex;
run;
proc ttest data=class;
class sex;
var weight;
run;
15
SAS
19
SAS
SAS DATA
PROC
means proc means
proc summary
16
SAS -
18
PGM WPGM
ch02_01.SAS, log ;
Help( ) Means proc
means
22
SAS
SAS SAS
Directory-based System
Windows :
UNIX :
z/OS (OS/390)
z/OS (OS/390) :
SAS
d:\sas
/users/userid
SAS
userid.workshop.sasdata
25
SAS
SAS
SAS
26
ibref SAS
Libref
27
SAS
SAS SAS
Work
Work
Sasuser
Sasuser
saslib
saslib
28
LIBNAME SAS
libref
LIBNAME :
LIBNAME
LIBNAME libref
libref 'SAS-data-library'
'SAS-data-library' <options>;
<options>;
libname saslib d:\sas';
:
8
29
SAS
libref libref Work
NewSalesEmps
work.NewSalesEmps
data NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps;
run;
32
SAS
SAS
SAS
:
SAS
SAS
33
SAS
_ALL_ CONTENTS
SAS
PROC
PROC CONTENTS
CONTENTS DATA=libref._ALL_
DATA=libref._ALL_ NODS;
NODS;
RUN;
RUN;
NODS
NODS _ALL_
SAS
34
SAS -- Viewtable
)
ViewTable .
ViewTable (VT VT )
(1) SAS SAS
(V8)
(2) VT
VT SASUSER.CLASS
(3) SAS => => VT
=> .
39
S :
SAS
( )
VAR1 VAR2
123 aBc
1
456 XyZ
2
12.34 123
3
0.1234 Lm3n
4
...
VARn
12Mar90
01Jul97
31Dec56
01jan80
49
Work.Class
Data Set Name
Engine
Created
Observations
Variables
...
Age
Height
N 8
N 8
14
69.0
13
56.5
13
65.3
14
62.8
WORK.CLASS
V9
Fri, Feb 08, 2008 01:40 PM
19
5
Name
$ 8
Alfred
Alice
Barbara
Carol
Sex
$ 1
M
F
F
F
Weight
N 8
112.5
84.0
98.0
102.5
50
SAS
SAS
( )
Work.Class
Data Set Name
WORK.CLASS
Engine
V9
Created
Fri, Feb 08, 2008 01:40 PM
Observations
19
Variables
5
...
Age
Height
Name
Sex
Weight
N 8
N 8
$ 8
$ 1
N 8
51
CONTENTS SAS
CONTENTS
PROC
PROCCONTENTS
CONTENTS DATA=SAS-data-set;
DATA=SAS-data-set;
RUN;
RUN;
52
PROC CONTENTS
53
SAS /
Work.Class
Age
N 8
14
13
13
14
Height
N 8
69.0
56.5
65.3
62.8
Name
$ 8
Alfred
Alice
Barbara
Carol
Sex
$ 1
M
F
F
F
Weight
N 8
112.5
84.0
98.0
102.5
54
SAS
1 32,767
8
8 16 17
8
55
AS
SAS
01JAN1959
01JAN1960
01JAN1961
-365
366
01/01/1959
01/01/1960
01/01/1961
SAS 1960 1 1
SAS
First_Name
Satyakam
Monica
Kevin
Petrea
Last_Name
Job_Title
Denny
Sales Rep. II
Kletschkus Sales Rep. IV
Lyon
Sales Rep. I
Soltau
Salary
26780
.
26955
27440
59
SAS
SAS
1 32
60
SAS
SAS
SAS
SAS
61
PRINT SAS
PROC PRINT
Obs
62
PRINT
PROC
PROCPRINT
PRINT DATA=SAS-data-set;
DATA=SAS-data-set;
RUN;
RUN;
63
PROC PRINT
64
PRINT
PROC
PROC PRINT
PRINTDATA=SAS-data-set
DATA=SAS-data-set NOOBS;
NOOBS;
VAR
VARvariable(s);
variable(s);
RUN;
RUN;
NOOBS
VAR
65
proc print data=work.class noobs;
var Name Height Weight;
run;
PROC PRINT
66
1. ( saslib);
sas ;
2. class SEX=F AGE>=14 ,
; where
3. class ;
4. SAS SASHELP , AIR
.
67
AS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
DATA
PROC
PROC
SAS
68
AS
SAS :
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps;
run;
proc means data=work.NewSalesEmps;
class Job_Title;
var Salary;
run;
69
SAS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps;
run;
proc means data=work.NewSalesEmps;
class Job_Title;
var Salary;
run;
70
AS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps; run;
proc means data =work.NewSalesEmps;
class Job_Title; var Salary;run;
71
AS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps; run;
proc means data =work.NewSalesEmps;
class Job_Title; var Salary;run;
72
AS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps; run;
proc means data =work.NewSalesEmps;
class Job_Title; var Salary;run;
73
AS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps; run;
proc means data =work.NewSalesEmps;
class Job_Title; var Salary;run;
74
SAS
SAS
data work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps; run;
proc means data =work.NewSalesEmps;
class Job_Title; var Salary;run;
75
AS
SAS SAS SAS
SAS
/*/* comment
comment */*/
** comment
comment ;;
76
AS
*----------------------------------------*
|
This program creates and uses the
|
|
data set called work.NewSalesEmps.
|
*----------------------------------------*;
data work.NewSalesEmps;
length First_Name $ 12 Last_Name $ 18
Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary /*numeric*/;
run;
/*
proc print data=work.NewSalesEmps;
run;
*/
proc means data=work.NewSalesEmps;
*class Job_Title;
var Salary;
run;
77
SAS
SAS SAS
78
daat work.NewSalesEmps;
length First_Name $ 12
Last_Name $ 18 Job_Title $ 25;
infile 'newemps.csv' dlm=',';
input First_Name $ Last_Name $
Job_Title $ Salary;
run;
proc print data=work.NewSalesEmps
run;
proc means data=work.NewSalesEmps average max;
class Job_Title;
var Salary;
run;
79
SAS
1. ViewTable ;
2. Import ;
3. .
81
SAS
SAS
VIEWTABLE
DATA
Import
SAS/ACCESS
82
SAS - /
1223412
12,234.1234
$12,234.123
4
12234.12
12,234.12
$12,234.12
7.2 8.2
7.2
comma9.2
dollar10.2
8.2
comma9.2
dollar10.2
12234.12
( ch02_02.SAS)
83
SAS
20OCT97
20/10/97
1997/10/20
20OCT1997
102097
97-10-20
DATE7.
DDMMYY8.
yymmdd10.
date9.
mmddyy6.
yymmdd8.
1960,1,10
1960,1,21
1960,2,131
1961,1,1366
13807
( ch02_03.SAS)
84
ORMAT
FORMAT
FORMAT
FORMAT
FORMATvariable(s)
variable(s) format;
format;
SAS SAS
DATA FORMAT
SAS
85
SAS
<$>format<w>.<d>
<$>format<w>.<d>
$
format
SAS
86
S -
$w.
w.d
COMMAw.d
COMMAXw.d
DOLLARw.d
EUROXw.d
()
87
S -
$4.
Programming
Prog
12.
27134.2864
27134
12.2
27134.2864
27134.29
COMMA12.2
27134.2864
27,134.29
COMMAX12.2
27134.2864
27.134,29
DOLLAR12.2
27134.2864
$27,134.29
EUROX12.2
27134.2864
27.134,29
88
DOLLAR12.2
27134.2864
$27,134.29
DOLLAR9.2
27134.2864
$27134.29
DOLLAR8.2
27134.2864
27134.29
DOLLAR5.2
27134.2864
27134
DOLLAR4.2
27134.2864
27E3
89
S
SAS SAS
MMDDYY6.
010160
MMDDYY8.
01/01/60
MMDDYY10.
01/01/1960
DDMMYY6.
365
311260
DDMMYY8.
365
31/12/60
DDMMYY10.
365
31/12/1960
90
S -
DATE7.
-1
31DEC59
DATE9.
-1
31DEC1959
WORDDATE.
January 1, 1960
WEEKDATE.
MONYY7.
JAN1960
YEAR4.
1960
91
FORMAT
a. format Birth_Date Hire_Date ddmmyy9.
Term_Date mmyy7.;
b. format Birth_Date Hire_Date ddmmyyyy.
Term_Date mmmyyyy.;
c.
Birth_Date
Hire_Date
Term_Date
21/05/1969
15/10/1992
MAR2007
92
SAS
Viewtable
VT VT New=
94
SAS
Viewtable
ViewTable
Column Attributes D
ata Column Attributes
;
File Like
;
File Include
.
95
SAS
Viewtable
( SAS
) .
:
(File) (Save as)
( File) (Save)
SAS .
96
SAS -
DATA
:
DATA SAS-data-set ;
;
INPUT ;
;
CARDS;
;
RUN;
DATA :
data da1;
input x y z;
sum=x+y+z;
cards;
1 3.1 5
3 2.3 7
6 3.4 6
;
run;
( ch02_05.SAS)
97
SAS
DATA
SAS
:
DATA
SAS-data-set ;
;
INFILE filename
<FIRSTOBS=n1
OBS=n2>;
INPUT ;
;
RUN;
( ch02_06.SAS)
DATA
SAS :
data da2;
infile c:\f1.txt;
input x y z;
mean=(x+y+z)/3;
run;
f1.txt :
3.1 5
3 2.3 7
.
( infile ,
DLM=, )
98
SAS - Import
SAS Import/Export :
(Import): SAS ;
(Export): SAS .
Windows dbf xls, w
k1, wk3 .
(File) (Import) (Export)
SAS ( SAS
).
EFI (External Fil
e Interface ), .
99
SAS - Import
SAS
,
.
Options
100
SAS - Import
SAS
SAS
101
SAS - Import
Import SAS
(1) (File) (Import data... )
12 .
*.* *.txt *.csv Next ;
(2) Browse sa
s ( D:\TEMP\ff1)
(3) sas (work)
( sasff1).
(4) Finish , SAS .
ff1,ff2,ff3, ff4)
102
SAS - Import
Import Excel SAS
(1) (File) (Import data)
12 .
Microsoft Excel 97 or 2000(*.xls) Next ;
(2) Browse s
as ( \dataset\fitness.xls)
(3) sas (work)
( sas.xls).
(4) Finish , Excel SAS .
103
1. VT ViewTable ,
sas ;
2. Import , *.txt sas ;
3. sas .
name
No Score
001
88
002
80
003
75
92
004
104
SAS
Windows SAS
SAS
. SAS
.
SAS ,
.
: BASIC , C ,Fortran
.
: , ,
( Fortran ), .
105
SAS
SAS SAS .
SAS SAS SAS
SAS SAS .
SAS .
DATA PROC INPUT .
SAS SAS ,
SAS
.
106
SAS
SAS SAS
Program Steps
data procedure p
roc run d
ata proc
SAS 32
( ),
( ), ( ), ( ), ( ) ( ).
SAS
107
SAS
SAS :
;
;
SAS .
"Beijing"
"BEIJING" .
.
108
SAS
SAS SAS . SAS
DATA PROC .
SAS .
109
SAS
DATA
SAS
SAS
PROC
(
)
110
SAS -
DATA , RUN ,
SAS SAS :
-- SAS SAS
,
DATA INPUT CARDS INFILE SET MERGE
;
--
where in ;
,
DO IF GOTO SELECT LINK ;
,
ARRAY INFORMAT FORMAT LENGTH ATTRIB
KEEP DROP .
111
SAS -
PROC SAS
PROC SAS
SAS .PROC
PROC PROC
.
PROC
.
PROC .
112
SAS -
SAS .SAS
PGM .
SAS .
LOG
; .
SAS OUTPUT .
113
AS -SAS
.
( )
( ).
,
.
114
AS -SAS
SAS
12 7.5 2.5E 10
'Beijing' "Li Ming" " "
'13JUL1998'd
'14:20t
13JUL1998:14:20:32dt
SAS
SAS .
(ch02_07.sas)
115
AS -SAS
SAS
SAS
8
SAS 8
INPUT
LENGTH
LENGTH name $ 20
116
AS -SAS
SAS
, ,*,/,**
><> < IN
EQ
NE
GT
LT GE LE
EqualNot Equal Greater Than Less Than
Greater than or Equal Less than or Equal
IN SAS
prov in ( , , , ')
prov
117
AS -
&(AND)
|(OR)
^(NOT)
AND & OR |
NOT ^
(salary >= 1000) AND (salary < 2000)
1000 2000 2000
(age <= 3) OR (sex = )
118
AS -SAS
||
| <> 3<>5
5 ><
3><5 3
( ) ( )
,
( ); ( ).
119
AS -SAS
SAS 9.x ,SAS ,
Zip ( )
SAS SAS
. SAS , SAS
.
,
,
120
-SAS
121
-SAS
122
data _null_;
y=sqrt(3);
put y= y;
run;
LOG SQRT 3
y=1.7320508076
123
SAS
124
CDF PDF
PMF LOGPDF PDF
LOGPMF PMF . x
<, >
BERNOULLI,BETA, BINOMIAL,
CAUCHY,CHISQUARED, GAMMA F, EXPONENTIAL, GAMMA,
GEOMETRIC,HYPERGEOMETRIC,LAPLACE,LOGISTIC,LOGNO
RMAL,POISSON, NEGBINOMIAL,NORMAL GAUSSIAN,PAR
ETO,T, UNIFORM, WALD IGAUSS, and WEIBULL
125
PDF('NORMAL', 1.96)
1.96 0.05844
CDF('NORMAL' 1.96)
1.96 0.975
PMF('NORMAL' 1.96)=PDF('NORMAL' 1.96)
PMF PDF
SAS
(ch02_08.sas)
126
PROBNORM(x) .
U x (P{U
=x}).
PROBCHI(x,df,nc) df, nc
. nc 0,
. df . :
p=1-probchi(31.264,11); 1-0.999=0.001.
PROBGAM(x,a) a(a 0)
. : p=probgam(7.5,5.2)
0.84885.
127
PROBBETA(x,a,b) ( :
, ). :
p=probbeta(0.75,4,2.5) 0.7467.
PROBF(x,ndf,ddf,nc) F ( ndf
,ddf ,nc ).
F , nc=0 .
. :p=1 probf(3.32,2,30) 0.04983.
PROBBNML(p,n,m)( :0p1,n1,0mn)
.
PROBT(x,df,nc) t ( df ,
nc ). nc 0,
t . df .
128
POISSON(lambda,n)( lambda n
.
PROBNEGB(p,n,m)( 0p1,n 0,m0)
.
PROBHYPR(nn,k,n,x,r)( nn1,0knn, 0nnn,ma
x (0,k+n nn)xmin(k,n) )
. nn K n
x r
1 r
PROBBNRM(x,y,r) r
(ch02_09.sas)
129
X F(x), p (0p
1), xp F(xp)=p, xp X (
F(x) p ).SAS
.
CINV(p,df,nc)( 0p1, df 0, n
c0) . :
data;
q1=cinv(0.95,3);put q1=q1;
q2=cinv(0.95,3.5,4.5);put q2=;
run;
q1=7.8147,q2=17.505 ( LOG ).
130
BETAINV(p,a,b)( :0p1,a 0,b 0)
. :
x=betainv(0.001,2,4) 0.0101.
FINV(p,ndf,ddf,nc)( 0p1, ndf 0,
ddf 0, nc0) F
. DATA q1=4.1028,q2=7.583
8.
data _null_
q1=finv(0.95,2,10);put q1=
q2=finv(0.95,2,10,3.2);put q2=
run
131
TINV(p,df,nc)( 0p1, df 0 ) t
. nc nc=0, t
. nc , .
.
PROBIT(p)(0p1) .
PROBNORM . X N(0,1),
P{Xprobit(z)}=z
5 5 .
GAMINV(p,a)( :0p1,a 0)
. : x=gaminv(0.75,3.5); 4.51857.
132
:x1,x2,,xn( X1 Xn X
Y ).SAS ( 15 ),
.
. :
MEAN(of x1-xn MEAN(x,y,z,).
x=mean(2,,,6) 4.
x=mean(1,2,3,2) 2.
MAX(of x1-xn) MAX(x,y,)
MIN(of x1-xn) MIN(x,y,)
133
N(of x1-xn) N(x,y,)
NMISS(of x1-xn) NMISS(x1,x2,).
SUM(of x1-xn) SUM(x1,x2,).
VAR(of x1-xn) VAR(x1,x2,).
STD(of x1-xn) STD(x1,x2,).
x=std(2,6) x=std(2,,6) 2.828427.
x=std(2,4,6,3,1) 1.923538.
134
STDERR(of x1-xn) STDERR(x1,x2,).
: x=stderr(2,6,3,4)
x=stderr(2,6,3,4,) 0.8539126
CV(of x1-xn) CV(x1,x2,).
RANGE(of x1-xn) RANGE(x1,x2,).
( )
CSS(of x1-xn) CSS(x1,x2,).
.
135
USS(of x1-xn) USS(x1,x2,).
( ) .
SKEWNESS(of x1-xn) SKEWNESS(x1,x2,).
.
KURTOSIS(of x1-xn) KURTOSIS(x1,x2,).
4 .
ORDINAL(k,x1,x2,xn) x1, x2,xn
k .
(ch02_10.sas)
136
F(x),
1 2 F(x) .
.SAS 11
.
:
UNIFORM(seed) RANUNI(seed).
NORMAL(seed) RANNOR(seed).
. X=M+sqrt(SQ)rannor(seed)
Y=exp(M+sqrt(SQ)rannor(seed))=exp(X)
X M SQ Y
, exp(M+SQ/2), exp(2M+SQ)*(exp(SQ)
137
1).
RANEXP(seed).
RANGAM(seed,alpha) ( alpha 0).
:RANTRI(seed,h)( 0 h 1).
:RANCAU(seed).
:RANBIN(seed,n,p)(n 0 ,0
p 1).
RANPOI(seed,lambda)(lambda
0 ).
: RANTBL(seed,p1 pi
pn)
( )
138
:
CEIL(x)-- x .CEIL(4.5)=5.
FLOOR(x)-- x .Floor(4.5)=4.
INT(x)-- x . INT(4.5)=4.
ABS(x)-- x .
MOD(x,y)-- x y .
SQRT(x)-- x .
DIGAMMA(x)-- x GAMMA .
GAMMA(x)-- x GAMMA .
139
LOG(x)-- x e .
LOG2(x)-- x 2 .
LOG10(x)-- x 10 .
ERF(x)-- .
EXP(x)-- e x .EXP(x)=ex.
SIN(x),COS(x),TAN(x)-- x .
SINH(x),COSH(x),TANH(x)--
UPCASE(s)-- s
LOWCASE(s)-- s
SUBSTR(s,p,n)-- s p n
140
LAGn(x) x n AIR:
( ) .
date
air
DIFn(x) x
JAN49
112
n ( )
FEB49
118
.
MAR49
132
DEC49
118
JAN50
115
FEB50
126
MAR50
141
.
141
(1) ;
(2)
data lagdif;
set dst.air;
pct1=dif(air)/lag(air);
pct2=dif12(air)/lag12(air);
run;
Proc print data=Lagdif;
(ch02_11.sas)
id date;
var air pct1 pct2;
Run;
142
143
AS
ddMMMyy D( : 12JAN96d )
DATE() SAS ,
TODAY()-- SAS ,
DATETIME()-- SAS ,
TIME()-- SAS ,
HOUR(time | datetime) SAS
MINUTE(time | datetime)-- SAS ,
SECOND(time | datetime)-- SAS
144
AS
YEAR(date)-- SAS date ,
MONTH(date)-- SAS date ,
DAY(date)-- SAS date ,
WEEKDAY(date)-- SAS date ( ) QTR(dat
e)-- SAS date ,
MDY(month,day,year)-- year month day ,
HMS(hour,minute,second)-- hour, minute, second
,
DHMS(date,hour,minute,second)--
DATEPART (datetime)-- SAS datetime
(ch02_12.sas)
145
AS
INTNX(interval,from,n)-- from n S
AS interval YEAR QTR MONTH
WEEK DAY
INTNX('MONTH', '16Dec1997'd,3)
1998 3 1
INTCK(interval,from,to)-- from to
interval interval MONTH .
INTCK(YEAR, 31Dec1996d, 1Jan1998d)
1996 12 31 1998 1 1
2 1
146
147
SAS
SAS
Sybase Oracle
FoxPro Excel
SQL SQL
SAS
148
SAS SAS
SAS
SAS
data a
put x= y= z=
input x y
z=x+y
put x= y= z=
cards
10 20
100 200
run
149
LOG
DATA
A WORK.A
PUT X Y Z ,
, LOG .
INPUT CARDS
X 10 Y 20
Z 30 LOG
10 20 30
CARDS
RUN
,
100 200
151
SAS
RUN
;
DATA
. ,
PUT
10 20 30
INPUT
X Y 100 200
Z 300
PUT X Y Z
100 200 300
152
CARDS
PUT
INPUT
WORK.A
PROC PRINT
RUN
OBS
1
2
X
10
100
Y
20
200
Z
30
300
153
SAS
SAS ,
INPUT SET MERGE UPDATE MODIFY
, ,
,
,
INPUT SET MERGE UPDATE MODIFY
,
DATA
,
,
_N_,
154
155
SAS
SAS ,
SAS ,
SAS .
SAS
SAS
.
156
SAS
Excel
157
SAS
Excel
libname
data
set
...
run;
;
;
libname
data
set
...
run;
;
;
;
data
infile
input
...
run;
;
;
158
LIBNAME
LIBNAME libref
libref 'SAS-data-library';
'SAS-data-library';
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
SET
SETinput-SAS-data-set;
input-SAS-data-set;
WHERE
WHEREwhere-expression;
where-expression;
KEEP
KEEP variable-list;
variable-list;
LABEL
LABELvariable
variable== 'label'
'label'
variable
variable == 'label'
'label'
variable
variable == 'label';
'label';
FORMAT
FORMATvariable(s)
variable(s) format;
format;
RUN;
RUN;
159
SAS -- SAS
DATA
:
DATA SAS-data-set ;
;
INPUT ;
;
CARDS;
;
RUN;
DATA
data da1;
input x y z;
sum=x+y+z;
cards;
1 3.1 5
3 2.3 7
6 3.4 6
;
(ch02_14.sas)
run;
160
SAS -- SAS
CARDS
INPUT
INFILE
f1.txt C:\
161
TA
DATA S
AS
LIBNAME
LIBNAME libref
libref 'SAS-data-library';
'SAS-data-library';
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
SET
SETinput-SAS-data-set;
input-SAS-data-set;
<additional
<additional SAS
SASstatements>
statements>
RUN;
RUN;
DATA
162
SAS -- SAS
DATA DATA
SAS SAS :
:
DATA SAS-data-set ;
data da2;
infile
;
c:\ch02_15.txt;
INFILE filename
input x y z;
<FIRSTOBS=n1
mean=(x+y+z)/3;
(ch02_15.sas)
run;
OBS=n2>;
INPUT ;
f1.txt :
3.1 5
;
3 2.3 7
RUN;
163
6 3.4 6
SAS -- SAS
INFILE
INFILE INPUT
CARDS
INFILE
SAS --INFILE
: data tem;
infile datalines;
input date $1-7 dest $8-10 num 11-13;
datalines;
01MAR90LON198
02MAR90FRA207
03MAR90LON205
;
run;
proc print;
Run;
(ch02_16.sas)
165
SAS -- INPUT
INPUT :
INPUT < 1><. . . n > <@|@@>;
SAS -- INPUT
1 INPUT - List ( )
INPUT <$><: >
<$><: >. . . ;
CARDS
(.)
168
SAS --
INPUT
List ( )
data: list
(ch02_17.sas)
.
INPUT
NAME
SEX $
SAS DATA
169
SAS --
2INPUT
Column
INPUT
INPUT <$> -
<$> - . . .
CARDS
-
( <=200)
,
170
SAS --
Column
( )
INPUT
1data
col1
data col2
input year 7-8
mon 9-10
day 1112
cards
110103751209223
(ch02_17.sas)
(ch02_17.sas)
110101690215005
2
171
SAS --
INPUT
data listcol ;
input name $ 1-6 sex $ height weight ;
cards;
176 65
181 78
162 54
;
(ch02_18.sas)
input name $1-6 sex $8-9 height Weight ;
input name $1-6 sex $ height 11-13 Weight
172
SAS --
3 INPUT INPUT
Formatted
INPUT
. . . ;
:@n +n
CARDS
@n n +n n
)
, .
173
SAS --
INPUT
Formatted ( ) :
data format
input name $6. sex $3. height 4. weight 3.
cards
176 65
181 78
(ch02_19.sas)
162 54
SAS --
INPUT
$
CHAR10. 10
SAS
175
SAS --
data for1 INPUT
input date yymmdd8.
Sales
format date yymmdd10.
cards
56-6-13 1100
67.12.15 1200
78 10 2 1300
891001
1400
19960101 1500
20020901 1600
proc print
run
(ch02_20.sas)
1
2
3
4
5
6
1956-06-13
1967-12-15
1978-10-02
1989-10-01
1996-01-01
2002-09-01
1100
1200
1300
1400
1500
1600
176
SAS --
INPUT
8
8
YYMMDD
0 FORMAT
YYMMDD10.
177
SAS --
INPUT
data for2
input sales @12
date
yymmdd10.
format date
yymmdd10.
put date=
cards
1100
56-6-13
1200
67.12.15
run (ch02_21.sas)
178
SAS --
INPUT
:
data forcol ;
input name $6. sex $ 8-9 height 11-13 weight :
2. ;
cards;
176 65
181 78
162 54
;
input name $1-6 @8 sex $2. height : 3. weight 1516 ;
(ch02_22.sas)
input @8 sex $2. name $1-6 @15
weight 2. height
11-13 ;
179
SAS --
DATA
LENGTH <$> . . . ;
INFORMAT . . .;
FORMAT . . .;
LABEL = . . .;
ATTRIB . . . ;
180
SAS --
(Name)
32 (V6 8)
(Type) ($)
(Length) 8 ( 32767)
(Label): 256
(Informat): w.d
(Format): w.d
181
Label
Format
PROC PRINT
Obs
1
2
3
4
5
First_
Name
Last_Name
Salary
Irenie
Christina
Kimiko
Lucian
Fong
Elvish
Ngan
Hotstone
Daymond
Hofmeister
26.600
27.475
26.190
26.480
32.040
Sales Title
Sales
Sales
Sales
Sales
Sales
Rep.
Rep.
Rep.
Rep.
Rep.
II
II
I
I
IV
Date Hired
01/01/1974
01/07/1978
01/10/1985
01/03/1979
01/03/1979
182
ABEL
LABEL
LABEL
LABEL
LABEL variable
variable =='label'
'label'
variable
variable== 'label'
'label'
variable
variable== 'label';
'label';
256
LABEL
DATA LABEL
SAS
PRINT print lab
el.
183
SAS --
1 ,INPUT
$
2 (LENGTH),
8
8
3 (INFORMAT),
SAS
184
SAS --
4 (FORMAT),
SAS
5 (LABEL),
40 ( ),
DATA ATTRIB
ATTRIB
185
SAS --
data sales;
ATTRIB name LABEL= LENGTH=$6
date LABEL= FORMAT=yymmdd10.
INFORMAT=mmddyy8.
amount LABEL= FORMAT=10.2 ;
input name $ 1-6 date amount;
cards ;
INPUT
10/15/98 17665
1/3/1999 18178
11/5/99 16254
;
proc print data=sales noobs label;
run;
(ch02_23.sas)
186
SAS --
SAS
187
SAS
SAS
SAS
SAS
SAS
188
SAS
SAS
(Analyst )
SQL Query
SAS
Input
SAS :
Set
189
SAS --
INPUT
SET
SAS :
SAS
DATA new;
. . . .;
INPUT . . .;
SAS ;
RUN;
DATA new;
SET old;
SAS ;
RUN;
190
SET SAS DATA
LIBNAME
LIBNAME libref
libref 'SAS-data-library';
'SAS-data-library';
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
SET
SETinput-SAS-data-set;
input-SAS-data-set;
<additional
<additional SAS
SASstatements>
statements>
RUN;
RUN;
, SET
SET
191
sashelp.class SAS
Work.class SAS
data work.class;
set sashelp.class;
run;
19
5
192
SAS --
DATA DROP= KEEP=
SET DROP= KEEP=
DATA DROP KEEP
193
ROP KEEP
DROP
DROP
DROP variable-list;
variable-list;
KEEP
KEEP
KEEP variable-list;
variable-list;
variable-list
SAS --
IF expression;
( IF )
data a;
set old;
if sex=M then delete;
run;
195
SAS --
Where :
Where where-expression;
data suba;
set class;
where sex=M and age>12;
run;
Where :
where sex=F;
where age in (11,13,15);
196
-
LIBNAME
LIBNAME libref
libref 'SAS-data-library';
'SAS-data-library';
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
SET
SETinput-SAS-data-set;
input-SAS-data-set;
WHERE
WHEREwhere-expression;
where-expression;
KEEP
KEEP variable-list;
variable-list;
LABEL
LABEL variable
variable == 'label'
'label'
variable
variable== 'label'
'label'
variable
variable== 'label';
'label';
FORMAT
FORMATvariable(s)
variable(s) format;
format;
RUN;
RUN;
197
HERE -
WHERE
WHERE
WHERE
WHEREwherewhere-
;;
where-
198
199
=
^=
EQ
NE
>
GT
<
LT
>=
GE
<=
LE
IN
~=
200
where Gender = 'M';
where Gender eq ' ';
where Salary ne .;
where Salary >= 50000;
where Country in ('AU','US');
where Country in ('AU' 'US');
201
+ - * / **
202
AND & OR |
NOT ^ ~
203
WHERE 5 6
7 Names
a. where Months in (5-7)
and Names = .;
where Months in (5,6,7)
b.
and Names = ' ';
c.
WHERE
WHERE where
BETWEEN-AND
IS NULL
IS MISSING
CONTAINS
LIKE
205
BETWEEN-AND
BETWEEN-AND
206
IS NULL IS MISSING
IS NULL IS MISSING
NOT
IS NULL IS MISSING
207
CONTAINS
CONTAINS (?)
WHERE ?
a.Office Rep
b. Sales Rep. IV
c. service rep III
d.Representative
208
KE
LIKE
(%)
(_)
WHERE
M
a. where Name like '_, M_';
b. where Name like '%, M%';
c. where Name like '_, M%';
d. where Name like '%, M_';
210
SAS --
:
DATA WHERE=
SET WHERE=
SET FIRSTOBS= / OBS=
: (1) data new(where=(sex=F));
(2) set old(where=(age>13));
(3) set old(firstobs=6 obs=20) ;
211
Admitjune
set saslib.Admitjune;
CONTEN
T
ActLevel
Date
DDMMYY10.
Action
Level
Fee
COMMA8.1
Height
1
Obs
4
Name
Full Name
Weight Date
14
Height8 Weight
1
2
3
4
5
Wilcox, E
Johnson, R
Takahashi, Y
Nunnelly, A
Eberhardt, S
67
63
65
66
64
17/06/1997
17/06/1997
18/06/1997
19/06/1997
21/06/1997
141
137
123
140
172
Action
Level
HIGH
MOD
MOD
HIGH
LOW
Full Name
Fee
149.8
149.8
124.8
149.8
124.8
213
SAS --
DATA
,
(IF), (SELECT)
(DO), (ARRAY)
(GOTO), RETAIN
PUT , OUTPUT
214
SAS --
:
var = expression ;
var -- .
expression-- SAS (+, -,*,/,**)
.
.
score = math + verbal; /* */
flag = (mod(num,2)=1);
/* 0,1 1
0 */
y=cos(x)**2;
newv = .;
/* */
/* */
215
SAS --
bonus= salary*0.10;
total=sum(x,y,z);
total=sum(of x1-x6);
date=01jan97d;
year=year(date);
qtr=qtr(date);
month=month(date);
day=weekday(date);
, SAS
.
216
SAS --SAS
SAS
( <, ,. . .> )
(OF )
sqrt(x),
probnorm(x),
tinv(x,df)
sum(of x1, x10-x20, x25)
217
SAS -- (SUM
)
:
var +expression ;
+ ;
var .
expression-- SAS
(+, -,*,/,**) .
.
n+1;
sumx+x*x;
ba+(-deb);
(ch02_24.sas)
218
SAS --RETAIN
INPUT
DATA .
RETAIN ,SAS DATA
, INPUT
.
retain n;
retain var1-var3 (1 2 3);
retain var1-var4(1,2,3,4);
retain;
retain n 0;
n+1;
n=n+1;
219
SAS -- (PUT)
SAS ,
.SAS PUT ,
PRINT RITE(*,*) printf
data
.
x=0.5 y=sin(x)
put Sin( x )= y
run
SAS -- (PUT)
PUT
PUT
put @10 x= @30 y=;
LOG 10 X=0.5 30
Y=0.4794255386.
PUT
PUT X 10 20 Y
30 40 6
put x 10-20 .6 y 30-40 .6;
221
SAS -- (PUT)
C FORTRAN .
PUT
$ . $10.
10
PUT
222
SAS -- (PUT)
PUT
PUT PUT
@
put i @
PUT
PUT FILE
PUT PUT
file print
PUT
223
SAS -- (PUT)
FILE
PUT
file out.txt
PUT
tmp.out tmp.out
SAS
C:\SAS\TMP.OUT
(ch02_25.sas)
224
SAS -OUTPUT
OUTPUT
SAS
.
OUTPUT 1 2 ;
DATA , DATA
, .
DATA OUTPUT ,
OUTPUT .
1:
data normal50;
do k=1 to 50;
x=normal(0);output;
end;
run ;
(ch02_26.sas)
225
SAS -
OUTPUT data a;
data a;
set sasuser.class;
ratio=weight/height;
run;
set sasuser.class;
ratio=weight/height;
output;
run;
: .
stu:
no g1 g2 g3 g4
1 3.3 3.4 3.5 3.6
2 3.3 3.3 2.8 3.0
3 3.7 3.8 3.8 3.6
data new(drop=g1-g4);
set stu;
grade=1; gpa=g1; output;
grade=2; gpa=g2; output;
grade=3; gpa=g3; output;
grade=4; gpa=g4; output;
run;
226
SAS -OUTPUT
4: SAS .
data classm classf;
set sasuser.class;
if sex='M then output classm;
if sex='F then output classf;
run;
(ch02_26.sas)
227
SAS --
IF THEN ;
ELSE ;
IF expression THEN
DO;
statements ; . . .
END;
ELSE
DO;
statements ; . . .
END;
228
SAS --
y=100+y;
(1) if sex=F then
229
SAS --
SAS
SAS SELECT
IF
ELSEIF ELSE
SELECT
SELECT ( );
WHEN( ) ;
WHEN( ) ;
OTHERWISE ;
END;
230
SAS --
, ,
SELECT ,
,
,
SELECT .
OTHERWISE
OTHERWISE
231
SAS --
SELECT;
SELECT
WHEN( ) ;
WHEN( ) ;
OTHERWISE ;
END;
SELECT WHEN
WHEN
OTHERWISE
232
SAS --
(1) SELECT(month)
233
SAS --
SAS
DO DO
DO TO BY
END
DO END
234
SAS --
1 BY
data;
DO i = 1 TO 20 BY 2;
j = i**3;
put i 3. j 5.;
END;
run;
1 3 5 7 19
LEAVE C break
235
SAS --
1000
if j>1000 then LEAVE
CONTINUE
data;
do x=0 to 3.1415926 by 0.01;
y = cos(x);
if y<0 then CONTINUE;
z = sin(x);
put x 5.2 y 20.7 z 20.7;
output;
end;
run;
(ch02_27.sas)
236
SAS --
X 0 = 3.1415926
0.01
END X
=0
/2 cos(X) sin(X) .
237
SAS --
:
do i=2 to 10 by 2;
do i=10 to 2 by 2;
do x=3.6 to 4.8 by 0.05;
do n=1, 5, 10, 30, 60;
do n=1, 5 to 10 , 20 , 30 ;
do month=JAN, FEB, MAR;
do z=k to n/10 ;
238
DO WHILE( )
END
1333333
239
data;
x=1333333
i=3;
DO WHILE (mod(x,i) ^= 0);
i=i+2;
END;
if i<x then put x= ' ';
else put x= ' ';
run;
(ch02_28.sas)
mod(x,i) x i
240
DO UNTIL (
END
241
data;
n=0;
do until (n>=5);
n+1; put n=;
end;
run;
n=1 2 3 4 5 n 5
n>=5
n+1
n=n+1
242
DO-END , DO-END
, .
: 20 2000 ( 7.5%,
), 20 .
data; capital=0;
do year=1 to 20;
capital=2000+capital;
do month= 1 to 12 ;
interest=capital*(0.075/12);
capital+interest;
end; output;
month
end;
run;
(ch02_29.sas) 13
243
-
data reaction;
length conc $4;
do amount=.9 to .6 by -.1;
do conc= '1%','1.5%','2%','2.5%','3%';
input time @@;
output;
end;
end;
datalines;
10.9 11.5 9.8 12.7 10.6
9.2 10.3 9.0 10.6 9.4
8.7 9.7 8.2 9.4 8.5
7.2 8.6 7.5 9.7 7.7
;
run;
proc print;
title 'Reaction times for biological substrate';
run;
amount
conc
time
244
SAS DO
Data ;
do i=3,7, 11 to 23 by 3 while (i**2<200) ;
j=i**2 ;
put i= j= ;
end;
run;
i 3,7,11,14 , i 17 i
289<200, , . WHILE
.
245
--
SAS
SAS
ARRAY
246
--
SAS
. , tests(1)
math, tests(2) chinese,tests(3)
english .
247
--
ARRAY x(3)
x x1 x2 x3
:
,
,
248
--
tests
--
,
$ ,
.
ARRAY $
250
--
SAS
ARRAY
_TEMPORARY_
_TEMPORARY_
ARRAY x(3) _TEMPORARY_ (0, 0, 0)
x
x(1) x(2) x(3) x1 x2 x3
251
--
SAS
comp1-comp10 prin1-prin6
DO
data sales
input comp1-comp10 prin1-prin6
ARRAY y(*) comp1-comp10 prin1-prin6
tot=0
do i=1 to DIM(y)
tot + y(i)
end
cards
run;
252
--
_NUMERIC_
_CHARACTER_
_ALL_ _ALL_
y
_NUMERIC_ _ALL_ :
ARRAY y(*) _NUMERIC_
ARRAY y(*) _ALL_
SAS SUM(OF
) tot SUM(OF comp1-comp12
prin1-prin6)
SUM(OF Y{*})
253
-
Data quizzes;
output do
transpose
254
SAS --Input
@
@
input DATA
data garden;
input store : $13. count @; Proc print data=garden;
do i=1 to count;
Title Gardening materials
input item : $ 10. price : 5.2
@;
purchased
Spring 2004;
output;
Run;
end;
drop i;
datalines;
jmart 4 rake 1250 sprinkler 875 bench 12000 chair 3525
woodsons 3 edging 750 planter 1365 basket 870
homenGarden 5 sweeper 1185 gloves 350 shears 2100
spade 3450 trimmer 7640
;
Run;
255
SAS --Input
@@
input input
data sat;
Input name $ verbal math @@;
Total = verbal + math;
Datalines;
Sue 610 560 John 720 640 Mary 580 590
Jim 650 760 Bernard 690 670 Gary 570 680
;
Run;
Proc print;
Run;
256
SAS --Input
Retain
retain
257
258
SAS --Input
#n
n
sas
259
SAS --sas
260
1. class :
(1) sex=f ;
(2) name,heifht,weight (
SAS );
(3) ratio=weight/height;
(4) SELECT OUTPUT BCLASS
.
261
2. DO :
A 1 31.5
A 2 29.8
A 3 32.4
B 1 40.1
B 2 41.1
B 3 42.0
C 1 50.1
C 2 51.2
C 3 50.8
(1) (TYPE,GROUP,Y) DABC;
(2) IF where TYPE=
DAC.
262
. A researcher had four subjects in a placebo group and four in a dru
g group. A score variable is measured on each subject. She would, for
example, like to structure the SAS data set to appear as follows:
GROUP
SCORE a. Write an input statement to read the data
values entered in data lines( i.e., with one
P
77
or more blanks between the group
P
76
designation and the score and one data line
P
74
for each pair of values).
P
72
b. Suppose it is preferred to enter the data
D
80
values on two lines as follows:
D
84
P 77 P 76 P 74 P 72
D
88
90
D 80 D 84 D 88 D 90
Write an input statement for this arrangement.
263
c. Instead, consider that the four scores for the placebo
group are placed on the first line and the four scores
for the drug group on the next as follows:
P 77
76 74 72
D 80 84 88 90
Write a data step to read these data. Make sure that
the data set contains a group as well as a score
variable.
d. Modify the part (c) program so that the four subjects
in each group has a subject number from 1 to 4.
264
SAS
SAS
SAS
SAS
265
SAS
SAS
SAS
SAS
A
B
B
266
SAS --
NUM VARA
A:
1
2
5
NUM VARB
A1
A2
A3
B:
3
4
6
B1
B2
B3
(Concantenate)
COMBINE:
NUM
1
2
5
3
4
6
VARA VARB
A1
A2
A3
B1
B2
B3
267
SAS --
NUM VARA
A:
1
2
5
NUM VARB
A1
A2
A3
B:
3
4
6
B1
B2
B3
(Interleave)
COMBINE:
NUM
1
2
3
4
5
6
VARA VARB
A1
A2
B1
B2
A3
B3
A
B
NUM
268
SAS
SET SAS (Concatenate):
DATA SAS-data-set ;
SET SAS-data-set1
SAS-data-set2 . . . ;
SAS ;
RUN;
269
SAS
NUM VARA
A:
1
2
5
NUM VARB
A1
A2
A3
B:
3
4
6
B1
B2
B3
DATA COMBINE;
set A B;
run;
COMBINE:
NUM
1
2
5
3
4
6
VARA VARB
A1
A2
A3
B1
B2
B3
(ch02_30.sas)
270
SAS
SET SAS (Interleave)
DATA SAS-data-set ;
SET SAS-data-set1
SAS-data-set2 . . . ;
BY Variables;
SAS ;
RUN;
271
SAS
NUM VARA
A:
1
2
5
COMBINE:
A1
A2
A3
B:
DATA COMBINE;
SET A B;
BY NUM;
run;
NUM
1
2
3
4
5
6
VARA VARB
A1
A2
B1
B2
A3
B3
NUM VAR
B
3
4
6
B1
B2
B3
(ch02_31.sas)
272
SAS
by
. , SORT
.
PROC SORT SAS :
PROC SORT DATA=SAS-dat-set1
OUT=SAS-dat-set2;
BY by-variables;
RUN;
273
SAS
C:
NUM VAR
1
C1
2
C2
2
C3
3
C4
COMBINE:
D:
data combine;
set C D;
by num;
run;
NUM VAR
1
C1
2
C2
2
C3
2
D1
3
C4
3
D2
3
D3
NUM
2
3
3
VAR
D1
D2
D3
(ch02_32.sas)
274
SAS --
A:
NUM VARA
1
A1
2
A2
3
A3
B:
NUM VARB
1
B1
2
B2
4
B3
(Match Merge)
COMBINE:
A B
NUM
275
SAS
MERGE SAS
DATA SAS-data-set;
MERGE SAS-data-set1 SAS-dataset2;
BY by-variables;
SAS ;
RUN:
MERGE SAS-data-set1(In=var)
SAS-data-set2(In=var);
276
SAS
A:
NUM VARA
1
A1
2
A2
3
A3
B:
NUM VARB
1
B1
2
B2
4
B3
DATA COMBINE;
merge A B;
by num;
run;
COMBINE:
(ch02_33.sas)
277
SAS
A:
NUM VARA
1
A1
2
A2
3
A3
C:
NUM VARB
2
B1
2
B2
3
B3
DATA COMBINE;
merge A C;
by num;
run;
COMBINE:
(ch02_34.sas)
278
SAS
DATA SET ,
Keep,Drop IN=
SAS
VAR
A:
B:
A1
A2
data combine;
set a(in=ina)
b(in=inb);
run;
_N_ VAR
INA
PDV:
1
2
3
4
A1
A2
B1
B2
1
1
0
0
VAR
B1
B2
INB
0
0
1
1
280
SAS
1: .
DATA COMBINE1;
merge A(in=ia) B(in=ib);
by num;
if ia=1 and ib=1;
/* if ia and ib; */
run;
2: .
DATA COMBINE ;
merge A(in=ia) B(in=ib);
by num;
if ia ;
/* if ia= ; */
run;
(ch02_33.sas)
281
SAS
: FIRST.var
LAST.var.
DATA ,SAS BY
FIRST.var LAST.var, BY
. DATA
.
data mma;
data mmb;
input num @;
input name $ sex$ num ;
do qtr=1 to 4;
cards;
input sales @ ;
Farr M 1351
output;
end;
Cox F 2512
cards;
Ruth M 3131
1351 10 12 14 20
Bond M 3551
2512 .
. 10 12
;
3131 14 10 10 22
3551 11 13 14 20
282
;
SAS
mma
: name, sex
283
Excel SAS
D:\Data Microsoft Excel
LM1.xls SAS
LM1 Excel
SAS SAS
PROC IMPORT OUT= WORK.lm1
DATAFILE= D:\Data\LM1.xls"
DBMS=EXCEL REPLACE;
GETNAMES=YES;
RUN;
284
Excel SAS
IMPORT
PROC IMPORT OUT= <SAS . SAS
>
DATAFILE= "< >:\< >\< >"
DBMS= < > [REPLACE];
[ ;]
285
IMPORT
Microsoft Windows *
.mdb
Microsoft Windows *
.csv
.xls
.xls
Microsoft Windows *
.xls
Microsoft Windows *
.jmp
UNIX, Microsoft
Windows
OpenVMS Alpha, UNIX,
Microsoft Windows
2002 table
ACCESS Microsoft Access 97 table
97
CSV
TAB
.*
.txt
286
admitjune
1 IF actl
evel=low,mod high
DA0 DA1 DA2
2 KEEP= DROP=
3 8 TA1 TA
2
3 actlevel da0,da1
da2, admit1 ;
4 2 8 ta1 ta
2, admit2 ;
287
INFILE
DSD
MISSOVER
288
SAS
Excel
289
SAS
libname
data
set
...
run;
Excel
libname
data
set
...
run;
data
infile
input
...
run;
;
;
;
;
290
sales.csv
sales.csv
120102,Tom,Zhou,M,108255,Sales Manager,AU,11AUG1969,06/01/1989
120103,Wilson,Dawes,M,87975,Sales Manager,AU,22JAN1949,01/01/1974
120121,Irenie,Elvish,F,26600,Sales Rep. II,AU,02AUG1944,01/01/1974
120122,Christina,Ngan,F,27475,Sales Rep. II,AU,27JUL1954,07/01/1978
120123,Kimiko,Hotstone,F,26190,Sales Rep. I,AU,28SEP1964,10/01/1985
120124,Lucian,Daymond,M,26480,Sales Rep. I,AU,13MAY1959,03/01/1979
120125,Fong,Hofmeister,M,32040,Sales Rep. IV,AU,06DEC1954,03/01/1979
120126,Satyakam,Denny,M,26780,Sales Rep. II,AU,20SEP1988,08/01/2006
120127,Sharryn,Clarkson,F,28100,Sales Rep. II,AU,04JAN1979,11/01/1998
120128,Monica,Kletschkus,F,30890,Sales Rep. IV,AU,14JUL1986,11/01/2006
120129,Alvin,Roebuck,M,30070,Sales Rep. III,AU,22NOV1964,10/01/1985
120130,Kevin,Lyon,M,26955,Sales Rep. I,AU,14DEC1984,05/01/2006
120131,Marinus,Surawski,M,26910,Sales Rep. I,AU,25SEP1979,01/01/2003
120132,Fancine,Kaiser,F,28525,Sales Rep. III,AU,05APR1949,10/01/1978
120133,Petrea,Soltau,F,27440,Sales Rep. II,AU,22APR1986,10/01/2006
120134,Sian,Shannan,M,28015,Sales Rep. II,AU,06JUN1949,01/01/1974
120135,Alexei,Platts,M,32490,Sales Rep. IV,AU,26JAN1969,10/01/1997
291
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
LENGTH
LENGTH variable(s)
variable(s) $$length;
length;
INFILE
INFILE 'raw-data-file-name';
'raw-data-file-name';
INPUT
INPUTspecifications;
specifications;
KEEP
KEEP variable-list;
variable-list;
LABEL
LABEL variable
variable == 'label'
'label'
variable
variable== 'label'
'label'
variable
variable== 'label';
'label';
FORMAT
FORMATvariable(s)
variable(s) format;
format;
RUN;
RUN;
292
DATA ( )
DATA
SAS
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
INFILE
INFILE 'raw-data-file-name';
'raw-data-file-name';
INPUT
INPUTspecifications;
specifications;
<additional
<additionalSAS
SASstatements>
statements>
RUN;
RUN;
DATA
293
INFILE
Windows
infile 's:\workshop\sales.csv';
UNIX
infile '/users/userid/sales.csv';
z/OS
(OS/390)
infile '.workshop.rawdata(sales)';
294
INPUT
INPUT
SAS
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
INFILE
INFILE 'raw-data-file-name';
'raw-data-file-name';
INPUT
INPUTspecifications;
specifications;
<additional
<additionalSAS
SASstatements>
statements>
RUN;
RUN;
295
INFILE DLM=
DATA
DATAoutput-SAS-data-set;
output-SAS-data-set;
INFILE
INFILE 'raw-data-file-name'
'raw-data-file-name' DLM='delimiter';
DLM='delimiter';
INPUT
INPUTspecifications;
specifications;
<additional
<additionalSAS
SAS statements>
statements>
RUN;
RUN;
296
sales.csv
SAS Work.subset
3
data work.subset3;
infile 'sales.csv' dlm=',';
input Employee_ID First_Name $ Last_Name $
Gender $ Salary Job_Title $ Country $;
run;
DLM = 09X
Firstobs=n n n=2
p107d01
297
phone2.csv
phone2.csv
1
1
2
2
3
3
4
4
1---5----0----5----0----5----0----5----0----5
James Kvarniq,(704) 293-8126,(701) 281-8923
Sandrina Stephano,, (919) 271-4592
Cornelia Krahl,(212) 891-3241,(212) 233-5413
Karen Ballinger,, (714) 644-9090
Elke Wallstab,(910) 763-5561,(910) 545-3421
298
phone2.csv
phone2.csv
1
1
2
2
3
3
4
4
1---5----0----5----0----5----0----5----0----5
James Kvarniq,(704) 293-8126,(701) 281-8923
Sandrina Stephano,, (919) 271-4592
Cornelia Krahl,(212) 891-3241,(212) 233-5413
Karen Ballinger,, (714) 644-9090
Elke Wallstab,(910) 763-5561,(910) 545-3421
299
DSD
INFILE DSD
INFILE
INFILE 'raw-data-file-name'
'raw-data-file-name'DSD;
DSD;
INFILE DSD
300
DSD
data contacts;
length Name $ 20 Phone Mobile $ 14;
infile 'phone2.csv' dsd;
Name $ Phone $phone2.csv
Mobile $;
input
DSD
run
p107d05
301
phone.csv
phone.csv
1
1
2
2
3
3
4
4
1---5----0----5----0----5----0----5----0----5
James Kvarniq,(704) 293-8126,(701) 281-8923
Sandrina Stephano,(919) 871-7830
Cornelia Krahl,(212) 891-3241,(212) 233-5413
Karen Ballinger,(714) 344-4321
Elke Wallstab,(910) 763-5561,(910) 545-3421
302
S
AS
303
MISSOVER
MISSOVER
SAS
MISSOVER INFILE
INFILE
INFILE 'raw-data-file-name'
'raw-data-file-name'MISSOVER;
MISSOVER;
SAS
304
missover
data contacts;
length Name $ 20 Phone Mobile $ 14;
infile 'phone.csv' dsd missover;
input Name $ Phone $ Mobile $;
run;
proc print data=contacts noobs;
run;
5 5
p107a03s
305