SAS Notes

SAS code in Emacs

The Data Step

Subsetting IF

In a Data Step you can exclude some observations from the dataset with an if statement.


data tornados_1980s;
  infile FileName;
  input year city damages;
  * this limits input data to 1980s data;
  if 1980 

  • IF .. IN statement
    if year in (1980, 1981, 1982);
    
  • AND, OR
    
    if year = '1980' and city = 'Baltimore';
    

    infile 'filename'

    In the data step, import data from a file with the infile command.

    
    data tornados;
      infile 'tornados.dat';
      input year city cost;
    run;
    

    Set

  • Use the set command to create a new data set from an already created
    set.
    The following creates a dataset of 1980s tornado data from the larger
    set of tornado data.
    
    data tornados_1980s;
      set tornados;
      if 1980 

    The PROC Step

    PROC SORT

  • The sort procedure, sorts data. You can sort by multiple fields.
  • Also you can print by a field.
    
    proc sort data=tornados;
      by year city;
    proc print data=tornados;
      by year;
    run;
    

    PROC Univariate

    PROC Univariate generates descriptive statistics

    
    proc univariate data=tornados;
      histogram year;
    run;
    

    PROC means

    Use proc means when you are only interested in basic descriptive statistics.

    PROC freq

  • generates tables for data in categories.

    PROC gplot

    
    proc gplot data=tornados;
      plot year*cost;
      title 'Year by Cost tornados';
    run;
    

    PROC corr

    compute the correlation

    
    proc corr data=grades;
      var exam1 exam2 hwscore;
    run;
    

    PROC reg

  • p: prints obs, predicted, residuals
  • r: same as p, plus more
  • clm: 95% conf interval for mean of each obs
  • cli: 95% prediction intervals.
    
    proc reg data=grades;
      model final=exam1 hwscore / p r cli clm;
      plot final*hwscore;
    run;
    

    Multiple Regression Analysis

    Variable Selection

    SAS has several methods for selecting variables

    
    proc reg data=cdi;
      model y = x1-x8 /selection=rsquare best=1;
      model y = x1-x8 /selection=adjrsq best=5;
      model y = x1-x8 /selection=cp best=10;
      model y = x1-x8 /selection=forward slentry=0.10;
      model y = x1-x8 /selection=stepwise slentry=0.10 slstay=0.10;
      model y = x1-x8 /selection=backward slstay=0.10;
    run;
    

    additional pages to try:
    more sas

  • Add new comment