Upload
peng-wu
View
220
Download
1
Embed Size (px)
Citation preview
SAS
SAS
SASSASBYBY
PROC SORT ; BY variable-1 ;
PROC SORT PROC SORT ;
Sheet1
DATA=
OUT=
ASCII
EBCDIC
DANISH
FINNISH
NORWEGIAN
SWEDISH
NATIONAL
SORTSEQ=
REVERSE
EQUALS
NOEQUALS
NODUPKEY
NODUPRECS
SORTSIZE=
FORCE
TAGSORT
Sheet2
Sheet3
FORCEOUT=FORCEOUT=FORCE OBS= FIRSTOBS= DATA=WHERS= PROC SORT WHERE
BY BY variable-1;
PROC SORTBYBYBYSORTBYDESCENDING
15.1 data a;set fdata.a1a0001;year=year(date);qtr=qtr(date);month=month(date);proc sort data=a out=b;by year qtr month;run;A1A0001
15.2 proc sort data= fdata.a600001 out=a; by descending clpr; proc print data=a (obs=3) noobs; var date clpr; run; CLPR
15.3 BYoptions nodate pageno=1 linesize=80 pagesize=60;proc sort data=fdata.account out=towns nodupkey;by town;run;proc print data=towns;var town company debt accountnumber;title 'Towns of Customers with Past-Due Accounts';run;
SAS
PROC TRANSPOSE ; BY variable-1 ; COPY variable(s); ID variable; IDLABEL variable; VAR variable(s);
Sheet1
BY
COPY
ID
IDLABEL
VAR
Sheet2
Sheet3
PROC TRANSPOSE PROC TRANSPOSE ;
Sheet1
DATA=
OUT=
PREFIX=
NAME=
LABEL=
LET
Sheet2
Sheet3
VARID VAR
VAR variable-list;VAR
VARVARCOPYBY
ID
ID variable;IDIDLETIDBYBYIDIDSAS+,-.P,ND(_)IDID
15.4 IDproc transpose data=fdata.class out=a let;id NAME;proc print;run;CLASSNAMEAA_NAME_.proc transpose data=fdata.R_MONTH OUT=a let;id DATE;proc print;run;R_MONTHDATEAA_NAME__LABEL_.
15.5 BYIDproc transpose data=fdata.class out=a let;id sex;proc print;run;
Sheet1
Obs_NAME_FM
1Age1515
2Height66.566.5
3Weight112112
Sheet2
Sheet3
proc transpose data=fdata.class out=a let;id sex;by sex;proc print;run;
Sheet1
ObsSex_NAME_FM
1FAge15.
2FHeight66.5.
3FWeight112.
4MAge.15
5MHeight.66.5
6MWeight.112
Sheet2
Sheet3
proc transpose data=fdata.class out=a;var name height weight; copy sex age;proc print;run;
proc sort data=fdata.class out=a;by name;proc transpose data=a let;by name;proc print;run;
15.6
options nodate pageno=1 linesize=80 pagesize=40; proc transpose data=fdata.score out=idnumber name=Test prefix=sn; id studentid; run;
proc print data=idnumber noobs; title 'Student Test Scores'; run;
15.7
options nodate pageno=1 linesize=80 pagesize=40;proc transpose data=fdata.score out=idlabel name=Testprefix=sn;id studentid;idlabel student;run;
proc print data=idlabel label noobs;title 'Student Test Scores';run;
15.8 BY
options nodate pageno=1 linesize=80 pagesize=40;proc transpose data=fdata.fishdata out=fishlength(rename=(col1=Measurement));var length1-length4;by location date;run;
proc print data=fishlength noobs;title 'Fish Length Data for Each Location and Date';run;
15.9 ID
options nodate pageno=1 linesize=64 pagesize=40;proc transpose data=fdata.stocks out=close let; by company;id date;run;proc print data=close noobs;title 'Closing Prices for Horizon Kites and SkyHi Kites';run;
15.10 options nodate pageno=1 linesize=80 pagesize=40;data split;set fdata.weights;array s{7} s1-s7;subject + 1;do Time=1 to 7;strength=s{time};output;end;drop s1-s7;run;proc print data=split(obs=15) noobs;title 'SPLIT Data Set';title2 'First 15 Observations Only';run;/**/proc transpose data=split out=totsplit prefix=Str;by program subject;copy time strength; var strength;run;proc print data=totsplit(obs=15) noobs;title 'TOTSPLIT Data Set';title2 'First 15 Observations Only';run;
SASOUTPUTSASLOGSASPRINTTOSASPRINTTO SAS SAS SAS
PRINTTO PROC PRINTTO ;
PROC PRINTTORUNRUNPRINTTODATAPROC
Sheet1
LABEL=
LOG=
LOG=and PRINT=
NEW
PRINT=
UNIT=
LABEL=
LOG=
NEW
PRINT=
UNIT=
Sheet2
Sheet3
15.11 SASproc printto log= 'd:\log.dat'; /**/filename f1 'd:\out.txt';proc printto log= f1; /**/15.12 filename f2 'd:\out.list';proc printto print=f2; /**/proc printto print= 'd:\out.list'; /**/
15.13 filename f printer;proc printto print=f;/**/proc printto print=print;/**/15.14 proc printto print='d:\out.txt' log= 'd:\log.dat' new;proc print data=fdata.class;run;
15.15 SASoptions nodate pageno=1 linesize=80 pagesize=60 source;proc printto log=test.log label='Inventory program' new;run;proc printto print=fdata.cat1.inventry.output label='Inventory program' new;run;
proc report data=fdata.inventry nowindows headskip;column dept item season year;title 'Current Inventory Listing';run;proc printto;run;
15.16 /**/proc printto print=print;run;data probtest;infile routed;input word1 $ @;if word1='' then do;input df chisq prob;keep chisq prob;output;end;run;data test;do n=1 to 1000;x=int(ranuni(77777)*7);y=int(ranuni(77777)*5);output;end;run;filename routed 'D:\fdata\F1.txt';proc printto print=routed new;run;proc print data=probtest;title 'Chi-Square Analysis for Table of X by Y';run;proc freq data=test;tables x*y / chisq;run;
SASAPPENDSASSASDATASETSASAPPENDAPPENDSASDATA.
APPEND PROC APPEND BASE=SAS-data-set ; APPEND
Sheet1
BASE=| OUT=
DATA=| NEW=
FORCE
Sheet2
Sheet3
15.17 PROC APPEND
BASE= BASE= BASE=
15.18 proc append base=data1 data=data2(where=(X=1));run;proc append base=a data= fdata.a600001(where=(year(date)=1999)) ;run;WHERE=WHEREDATA=BASE=
SASCOPYSAS
COPY PROC COPY OUT=libref-1 IN=libref-2 ; EXCLUDE SAS-file(s) ; SELECT SAS-file(s) ;
SelectIN=ExcludeIN=PROC COPYSELECTEXCLUDE.
PROC COPY
Sheet1
IN|INLIB|INDD=
OUT|OUTLIB|OUTDD=
MEMTYPE|MTYPE|MT=
MOVE
ALTER=
INDEX=YES/NO
Sheet2
Sheet3
MEMTYPE
Sheet1
ALL
ACCESS
CATALOG
DATA
PROGRAM
VIEW
Sheet2
Sheet3
15.19 SASproc copy in=lib1 out=lib2 MTYPE=(data catalog);run;
15.20 LIB1SASLIB2proc copy in=lib1 out=lib2 move;run;
15.21data fdata.dat fdata.dat1 fdata.dat2 fdata.dat3 (alter=zsw);var='move';run;proc copy in=fdata out=work move alter=zsw;select dat dat1-dat3;run;
data fdata.dat fdata.dat1 fdata.dat2 fdata.dat3 (alter=zsw);var='move';run;proc copy in=fdata out=work move;select dat dat1-dat3 (alter=zsw);run;
15.22 DATdata fdata.dat fdata.dat1 fdata.dat2 fdata.dat3 (alter=zsw);var='move';run;proc copy in=fdata out=work move;select dat: (alter=zsw);run;