/*********************************** This command file illustrates using SAS for basic data setup and variable creation. filename: brieftour.sas ************************************/ OPTIONS FORMCHAR="|----|+|---+=|-/\<>*"; /*****************Read in raw data************************/ data class; infile "class.dat"; input lname $ sex $ age height sbp; run; /*************Fixed Column Data****************************/ data flights; infile "marflt.dat" ; input flight 1-3 depart $ 15-17 dest $ 18-20 boarded 34-36; run; /****************Create a permanent SAS dataset********************/ libname mylib "C:\Users\kwelch\Desktop\labdata"; data mylib.flights; infile "marflt.dat" ; input flight 1-3 depart $ 15-17 dest $ 18-20 boarded 34-36; run; proc means data=mylib.flights; run; /*************Use a permanent SAS dataset*****************/ libname sasdata2 "C:\Users\kwelch\Desktop\sasdata2"; proc contents data=sasdata2.employee; run; proc means data=sasdata2.employee; run; proc freq data=sasdata2.employee; tables gender jobcat; run; /*User-defined formats*/ proc format; value $genderfmt "f"="Female" "m"="Male"; value jobcatfmt 1="Clerical" 2="Custodial" 3="Managerial"; run; proc freq data=sasdata2.employee; tables gender jobcat; format gender $genderfmt. jobcat jobcatfmt.; run; /*User-defined and SAS formats*/ proc print data=sasdata2.employee; where jobcat=1; format bdate mmddyy10. salary salbegin dollar12. gender $genderfmt. jobcat jobcatfmt.; run; /***********Generate new variables in a SAS dataset***************/ data sasdata2.employee2; set sasdata2.employee; currentyear=2005; alpha ="A"; sept11 = "11SEP2001"D; format Sept11 mmddyy10.; saldiff = salary - salbegin; if (salary >= 0 and salary <= 25000) then salcat = "C"; if (salary > 25000 & salary <= 50000) then salcat = "B"; if (salary > 50000) then salcat = "A"; format bdate mmddyy10. salary salbegin dollar12.; if gender="f" then female=1; if gender="m" then female=0; if jobcat not=. then do; jobdum1 = (jobcat=1); jobdum2 = (jobcat=2); jobdum3 = (jobcat=3); end; nmiss = nmiss(of educ--salbegin); salmean = mean(salary, salbegin); run; /**********Permanent Formats***********/ proc format lib=sasdata2; value jobcatfmt 1="Clerical" 2="Custodial" 3="Manager"; value $genderfmt "f" = "Female" "m" = "Male"; value minfmt 1="Yes" 0="No"; run; options fmtsearch=(work sasdata2); proc datasets lib=sasdata2; modify employee2; format jobcat jobcatfmt. gender $genderfmt. minority minfmt.; run; proc contents data=sasdata2.employee2; run; /*Use the formatted data later*/ options nofmterr; libname sasdata2 "C:\Users\kwelch\Desktop\sasdata2"; options fmtsearch=(work sasdata2); proc means data=sasdata2.employee2; class jobcat; var saldiff; run; /*********Sort data**********/ proc sort data=sasdata2.employee2; by gender; run; proc means data=sasdata2.employee2; by gender; run; /*Sort by a continuous variable*/ proc sort data=sasdata2.employee2; by salary; run; proc contents data=sasdata2.employee2; run; /*Sort in descending order*/ proc sort data=sasdata2.employee2; by descending salary; run; /*Sort by more than one variable*/ proc sort data=sasdata2.employee2; by gender salary; run; /*************Descriptive Statistics*********************/ title; data pulse; infile "pulse.dat"; input pulse1 pulse2 ran smokes sex height weight activity; run; PROC IMPORT OUT= WORK.PULSE DATAFILE= "PULSE.XLS" DBMS=EXCEL REPLACE; SHEET="pulse$"; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; /*PROC PRINT - DIFFERENT OPTIONS*/ proc print; run; proc print data=pulse; run; proc print data=pulse(obs=6); run; proc print data=pulse(firstobs=82 obs=85); run; proc print data=pulse; var ran height pulse1; run; proc print data=pulse; var sex -- activity; run; proc print data=pulse label; var sex -- activity; run; proc print data = pulse label noobs; var sex -- activity; run; /*PROC CONTENTS*/ proc contents data=pulse; run; proc contents data=pulse varnum; run; /*PROC MEANS*/ proc means data=pulse; run; proc means data = pulse; var height weight pulse1; run; proc means data = pulse; var ran -- activity; run; proc means data = pulse; class ran; run; proc means data = pulse n mean min max; class ran activity; run; proc means data = pulse n mean min max skewness kurtosis; var pulse1 pulse2; run; proc means data = pulse n mean clm; var pulse1 pulse2; run; proc means data = pulse n mean clm alpha = .01; var pulse1 pulse2; run; /*PROC FREQ*/ /*Oneway frequencies*/ proc freq data = pulse; tables ran activity smokes; run; proc freq data = pulse; tables activity /chisq testp = (.2,.5,.3); run; /*Twoway cross-tabulations*/ proc freq data = pulse; tables sex * activity; run; proc freq data = pulse; tables sex * activity / expected norow nocol nopercent chisq; run; /*Threeway Cross-tabulation*/ proc freq data = pulse; tables ran*sex*activity; run; /*PROC UNIVARIATE*/ proc univariate data = pulse; var pulse1; run; proc univariate data = pulse; var pulse2; id ran; run; proc univariate data = pulse plot; var pulse1; histogram; run; proc univariate data = pulse normal; var pulse1; qqplot / normal(mu=est sigma=est); run; proc univariate data=pulse; class ran; var pulse2; histogram; run;