Sas Syntax Cheat Sheet

Posted : admin On 1/29/2022
  1. Sas Syntax Cheat Sheet Free
  2. Sas Syntax Cheat Sheet Download
  3. Sas Operators Cheat Sheet
  4. Sas Syntax Cheat Sheet Printable
  5. Sas Syntax Cheat Sheet Pdf

I have created this SAS cheat sheet to refer while you learn. It has all the important procedures and functions which come very handy.


SAS Language

ATTRIBvarn <LENGTH=’varn-length’> <LABEL=’varn-label’>

<FORMAT=varn-format.> <INFORMAT=varn-informat.>;

Associates a format, informat, label, and/or length with one

  1. SQL is an interactive procedure, in which RUN has no meaning. QUIT forces a step boundary, terminating the procedure. An SQL table in SAS is identical to a SAS data set. The output table could also be a permanent SAS data set; in such case, it would simply be referenced by a two-level name (e.g. A few other features of.
  2. Variables mixins darken adjust-color @for @each @while @if @else $list: (a b c) $map: (a: b, c: d) One-page guide to Sass.

or more variables


Indicates that data lines follow (suffix of 4 if data has ‘;’s).

DATA <dsetn <(dset-optionsn)>>;

Begins a DATA step and provides names for any output

SAS data sets. See Data Set Options for options that are

available in the DATA statement.

DO index-var=start_valueTOend_value <BYstep>;

DO UNTIL (expression);

DO WHILE (expression);

Groups a set of statements as a single unit. Note that UNTIL conditions are evaluated at the end of the loop and


thus execute at least once.

FILE filename <options>;

Specifies the current output file for PUT statements. Options include:

MOD output is appended to an existing file.

OLD output overwrites an existing file.

IF expressionTHENstatement; …. <ELSE> statement;

SAS evaluates the expression in an IF statement to

produce a result that is either non-zero, zero, or missing. If

result >0 then TRUE, else FALSE.

INFILE filename <options>;

Specifies an external file to read with an INPUT statement. Options include:

DELIMITER DLM= delimiters

Specifies a delimiter for list input. LENGTH= variable

Names a variable that SAS sets to the length of the

current input line.

INPUTvar<=> <$> startcol <-endcol> <.dec> <@ @@>; INPUT <pointer-control> variable informat. <@ @@>;INPUT<pointer-control> variable <$> <&> <@ @@>;

Input records from the current input file, placing the values

into SAS variables.

MERGE ds1 <(doptions)> <… dsn<(doptions)>> <END=var>;

Joins observations from two or more SAS data sets into

single observations.


Writes the current observation to a SAS data set.

PUTvar<=> <$> startcol <-endcol> <.dec> <@ @@>;

PUT <pointer-control> <”textvariable format.> <@ @@>;

Writes variable values and/or text to the output line.

RETAINvariablen <initial-valuen>;

Causes a variable to retain its value from one iteration of

the data step to the next.

SET<data-set(s) <(data-set-options(s)>> <POINT=varname>

<NOBS=varname> <END=varname>;

Reads observations from one or more data sets.


SAS Data Set Options

DROP=variable(s) Excludes variables from processing. FIRSTOBS=n Specifies the first observation to process IN=variable Creates and names a variable that indicates

whether the data set contributed data to the current


KEEP=variable(s) Selects variables for processing. LABEL=’label‘ Specifies a label for a SAS data set

OBS=n Specifies the first n observations to process POINT=variable Direct observation number variable

RENAME=(oldname1=newname1 <…oldnamen=newnamen>)

Changes the name of a variable.

WHERE=(expression1 <logical-operator expressionn>)

Sas syntax cheat sheet examples

Selects observations from a SAS data set that meet certain conditions before SAS brings them into the DATA or PROC step for processing.


SAS Procedures




VAR variable(s);





CHANGEold-namen=new-namen </MEMTYPE=(m-list);

CONTENTS <DATA=<libref.>member> <DIRECTORY>

<MEMTYPE=(m-list)> <NODS>


COPY OUT=libref <IN=libref> <MEMTYPE=(m-list)>


EXCLUDEmember-list </MEMTYPE=mtype>;

LABEL variable=’label-text’;

RENAME variablen=new-variablen;



m-list one or more of the member types that processing should be restricted to.

member-list list of members in the directory to process.

PROC EXPORT DATA=<libref.>dset

Sas Syntax Cheat Sheet

OUTFILE=”filename” <REPLACE>;

Sas syntax cheat sheet


OUT=<libref.>dset <REPLACE>;

The following filetypes are the most commonly used and supported within filename by SAS:

filename.XLS (Microsoft Excel)

filename.TXT (tab delimited)

filename.CSV (comma separated value)

This article is mostly intended as a quick reference for myself.I cover a very limited subset of uses of various SAS statements and procedures;those which I have been using more or less repeatedly.

Libname documentation

Proc importdocumentation.

Remark: if nothing works, an easy way out is to use the import wizard (File -> Import Data).The generated command can then be saved in a file and inspected or modified.

CSV Files

Dbf files

INSEE dataset for instance

MS Access databases

Sas dataset from directory

To import C:pathtodirTable1.sas7bdat.

For someone who has been programming, SAS macros can feel very unintuitive.They are very much the tell-tale sign that the SAS language has been designedfor statisticians, not for developpers nor computer scientists.The easiest way to think reason about them is to think about the macro systemof the C preprocessor: SAS macro are mostly working as a text replacement tool,with some quirks.

Simplest macro:

Without variables, it is as simple as it gets.

With a loop

Variables, including loop variables, can be accessed with the &var. syntax.The loop syntax is close to for-loops in the usual languages.Documentation.

With parameters

As previously, we use the &var. syntax to access the content of a variable.

Using externally defined macro variables

This is a bit more tricky. Assume you want to loop through the columns in a table.One way to do it is to define macro variables with convenient names, convenientmeaning indexable.

The data _null_ statement allow one to operate without creating a dataset which isthe default behaviour.The symput('varname', v) function assigns a value v to a variable called 'varname'.In the loop body, we then use the usual &var. syntax to access the loop variable value.However, we are not done: we need to further resolve Colname&i. to what we have definedin the data step.For this, we use the &&var1&var2. syntax, meaning 'first resolve var2 to its value, thenresolve the resulting expression.The process as I figure it out in my mind is the follwing:&&Colname&i. -> &&Colname1 -> &Colname1. -> 'ID'.

The sgplot procedure is fairly easy to use and flexible enough for most purposes.The only catch which has turned up to be utterly annoying is how the order of categoricalvariables is handled. I could not get it right even when sorting the data.The axescommand documentation is very useful.

Series for plotting lines

A simple example for theseriescommand.

A more complex example with groups, formats, custom colors and a legend.

Band for range of values

This one is very handy for plotting min - max values.

Vbar for vertical barplots.

Most of the options forvbarare valid forhbar.

Grouping data:

Density to visualize 1-D distributions

Sgplot'sdensityis very simple to use.

A useful alternative is proc univariate'shistogram statement.

Plotting maps is a bit more involved so I wrote a dedicated article:Plotting maps in SAS.

Sas Syntax Cheat Sheet Free

Proc formatcan be helpful in various cases beyond the obvious usage. Here are some samples.

Sas Syntax Cheat Sheet Download

Defining intervals for numerical values

Sas Operators Cheat Sheet

Getting a summary about missing values

Sas Syntax Cheat Sheet Printable

Writing the results of a query in a macro variable.

Sas Syntax Cheat Sheet Pdf

Datalines statement for making dummy datasets