SAS Notes
SAS Notes
CHAPTER 1
TERMINOLOGY
LIBRARY – FOLDERS ARE CALLED LIBRARY IN SAS
DATASET – DATABASE FILES ARE CALLED DATASET IN SAS.
CREATING A LIBRARY:
CREATING A DATASET:
DATA PLANMAN.ICMR;
RUN;
** Creates a dataset icmr inside the planman library.
DATA ICMR;
RUN;
** Creates a dataset icmr inside the work library( temporary) since the library name is not specified..
DATA PLANMAN.ICMR;
SET SASHELP.CLASS;
RUN;
** Creates a dataset icmr inside the planman library.The contents of sashelp.class will be copied into
planman.icmr.
1
Base SAS Programming
CHAPTER 2
TYPES OF FILES:
IMPORTING PC FILES:
proc import
datafile ="C:\Documents and
Settings\Prabu\Desktop\ICMR\stationaries.xls"
out=stationaires
dbms = excel;
run;
proc print data = stationaires;
run;
** An Excel sheet from the computer has been importedr It is stored in the datasetname called stationaires
which is stored in the work library ( since no library was specified)
.
EXPORTING PC FILES:
proc EXPORT
OUTfile ="C:\Documents and Settings\Prabu\Desktop\ICMR\SCHOOL.xls"
DATA=school
dbms = excel;
run;
** A dataset school in work library has been exported to a folder in the C drive in the name school.xls.
data ramarajan;
INPUT MOVIE$ DAYS VERDICT$;
DATALINES;
KARAGA 500 HIT
ANNAN 200 HIT
2
Base SAS Programming
DATA RAMA;
INFILE "C:\Documents and
Settings\Prabu\Desktop\ICMR\SAS\Infile\RAMA.TXT";
INPUT MOVIE$ DAYS VERDICT$;
RUN;
PROC PRINT DATA=RAMA;
RUN;
DATA RAMA;
INFILE "C:\Documents and
Settings\Prabu\Desktop\ICMR\SAS\Infile\RAMA.TXT";
INPUT MOVIE$ DAYS VERDICT$;
RUN;
PROC PRINT DATA=RAMA;
RUN;
DATA RAMA;
INFILE "C:\Documents and
Settings\Prabu\Desktop\ICMR\SAS\Infile\RAMA.TXT";
INPUT MOVIE $ 1-6 DAYS 7-8 VERDICT $ 9-12;
RUN;
PROC PRINT DATA=RAMA;
RUN;
3
Base SAS Programming
DATA frmInput;
INPUT Name $16. Age 3. +1 Type $1. +1 Date MMDDYY10.
(Score1 Score2 Score3 Score4 Score5) (4.1);
datalines;
Alicia Grossman 13 c 10-28-2003 7.8 6.5 7.2 8.0 7.9
Matthew Lee 9 D 10-30-2003 6.5 5.9 6.8 6.0 8.1
Elizabeth Garcia 10 C 10-29-2003 8.9 7.9 8.5 9.0 8.8
Lori Newcombe 6 D 10-30-2003 6.7 5.6 4.9 5.2 6.1
Jose Martinez 7 d 10-31-2003 8.9 9.510.0 9.7 9.0
Brian Williams 11 C 10-29-2003 7.8 8.4 8.5 7.9 8.0
;
PROC PRINT;
FORMAT DATE DDMMYY8.;
RUN;
REMOVING A COMMA:
data come;
infile "C:\Documents and Settings\Prabu\Desktop\ICMR\SAS\Class
notes\examplecodesasof17jul10class\come.txt";
input average comma6.;
run;
proc print data=come;
run;
DATA frmInput;
INPUT Date MMDDYY10.
;
datalines;
10-28-2003
10-29-2003
10-30-2003
10-31-2003
10-29-2003
;
PROC PRINT;
FORMAT DATE DDMMYY8.;
RUN;
DATA NamedInput;
INPUT State =$14. Pop= ;
CARDS;
STATE=North Carolina Pop=5.082
STATE=South Carolina Pop=0.590
4
Base SAS Programming
STATE=Viginia Pop=.
;
proc print;Run;
/******************/
/* INFILE OPTIONS */
/* 1.firstobs */
/* 2.obs */
/* 3.Missover */
/* 4.Turncover */
/* 5.DLM */
/* 6.DSD */ * DSD --> Delimeter Sensitive data;
/******************/
MISSOVER:
DATA class102;
INFILE datalines Missover;
INPUT Name $ Test1 Test2 Test3 Test4 Test5;
datalines;
Nguyen 89 76 91 82
Ramos 67 72 80 76 86
Robbins 76 65 79
;
proc print;Run;
** Tells SAS not to go to next line when the data ends, assign missing values and go to next step..
TRUNCOVER:
5
Base SAS Programming
DATA homeaddress;
INFILE
"C:\Documents and Settings\Prabu\Desktop\ICMR\SAS\Class
notes\examplecodesasof17jul10class\truncover.txt" TRuncover ;
INPUT Name $ 1-15 Number 16-19 Street $ 21-37;
proc print;Run;
DLM:
DATA Dlm_demo;
INFILE "C:\Documents and Settings\Prabu\Desktop\ICMR\SAS\Class
notes\examplecodesasof17jul10class\dash.txt" DLM ='|';
INPUT Name $ Week1 Week2 Week3 Week4 Week5;
RUN;
proc print;run;
DSD:
DATA DSD_demo;
INFILE datalines DLM = ',' DSD MISSOVER;
INPUT BandName :$30. Date :ddmmyy10. EightPM NinePM TenPM ElevenPM;
datalines;
Lupine Lights,12/3/2003,45,63,70,
Awesome Octaves,12/15/2003,17,28,44,12
"Stop, Drop, and Rock-N-Roll",1/5/2004,34,62,77,91
The Silveyville Jazz Quartet,1/18/2004,38,30,42,43
Catalina Converts,1/31/2004,56,,65,34
** ignores delimiters
Does not read quotation marks
Two demiters in a row as a missing value.