You are on page 1of 2

SAS Base Programming for SAS®9 and SAS® 9.

4 Syntax Reference Guide


Copyright: September 4, 2018 Last Modified: February 8, 2019

SAS LIBNAME Statement Subsetting Variables


LIBNAME libref 'SAS-data-library'<options>; DROP variable(s);
KEEP variable(s);
Browsing a SAS Library
PROC CONTENTS DATA=libref. _ALL_ <NODS>; Conditional Processing
RUN; IF expression THEN statement;
ELSE statement;
Creating a SAS Data Set
PROC IMPORT DATAFILE= “filename” or TABLE= DO;
“tablename” SAS statements;
OUT=<libref.SAS-data-set> END;
<DBMS=identifier>
<SAS-data-set-options> DO index-variable=specification-1 <, ...specification-n>;
<REPLACE>; ...more SAS statements...
<GETNAMES= yes | no>; END;
<GUESSINGROWS=number-of-rows>;
<DATAROW= row-number>; DO UNTIL(expression);
RUN; ...more SAS statements...
END;
Reading a SAS Data Set
DATA output-SAS-data-set(s); DO WHILE(expression);
SET input-SAS-data-set; ...more SAS statements...
<…more SAS statements…>; END;
RUN;
Operators in Expressions
Accessing Microsoft Excel Data with the XLSX
Engine Operator Meaning
LIBNAME <libref>XLSX <'physical-path-and- = or eq equal to
filename.xlsx'><options>; ^= or ne not equal to
> or gt greater than
Selecting Variables – Data Set Options < or lt less than
(DROP=variables) >= or ge greater than or equal to
(KEEP=variables) <= or le less than or equal to
(RENAME=old-variable-name=new-variable-name) and, both. If both expressions are
AND or & true, then the compound expression
Selecting Observations – Data Set Options is true.
(IN=variable) or, either. If neither expression is
OR or | true, then the compound expression
Examining SAS Data Set Descriptor Portion is true.
PROC CONTENTS DATA=SAS-data-set; 0 false
RUN; 1 true
. false
Error Handling
PUT specification(s); Applying Formats
PUTLOG 'message'; FORMAT variable(s) format-name…;

Creating New Variables Creating User-Defined Formats


new-variable=expression; PROC FORMAT LIBRARY=libref or
LENGTH variables <$> length …; LIBRARY=FMTLIB;
VALUE format-name;
Modifying Variables RUN;
RETAIN variable <initial-value>;
Titles and Footnotes
Subsetting Data TITLE <n> 'text';
IF expression THEN DELETE; FOOTNOTE <n> 'text';
WHERE expression;
Labels
LABEL variable1='label1' variable2='label2'...;

SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS
Institute Inc. in the USA and other countries. ® indicates USA registration. Other brand and product names are
trademarks of their respective companies. Copyright © 2018 SAS Institute Inc. Cary, NC, USA. All rights reserved.
SAS Base Programming for SAS®9 and SAS® 9.4 Syntax Reference Guide
Copyright: September 4, 2018 Last Modified: February 8, 2019

Combining SAS Data Sets Creating Output


One-to-One Reading: ODS open-destination;
DATA output-SAS-data-set; ODS close-destination CLOSE;
SET SAS-data-set-1; ODS EXCEL <(<ID=>identifier)> <action>;
SET SAS-data-set-2; ODS EXCEL <(<ID=>identifier)> <option(s)>;
RUN;
Concatenating: ODS HTML
DATA output-SAS-data-set; BODY = body-file-specification;
SET SAS-data-set-1 SAS-data-set-2; CONTENTS=contents-file-specification
RUN; FRAME=frame-file-specification;
Match-Merging: ODS HTML CLOSE;
DATA output-SAS-data-set;
MERGE SAS-data-set-1 SAS-data-set-2; ODS PDF <(<ID=>identifier)> <action>;
BY <DESCENDING> variable(s);
RUN; ODS RTF <(<ID=>identifier)> <action>;

Sorting Data Functions


PROC SORT DATA=SAS-data-set function-name (argument-1(<, argument-n>);
<OUT=SAS-data-set>; CATX (separator, string-1<,...string-n>)
BY <DESCENDING> BY-variables(s); CEIL(argument)
RUN; COMPBL(source)
COMPRESS (source<, characters><, modifier(s)>)
Producing Detail Reports DAY(date)
PROC PRINT DATA=SAS-data-set DATDIF (start_date, end_date, basis)
<NOOBS LABEL SPLIT='split-character'>; DATE ()
VAR variable(s); FIND (string, substring<, modifiers><, startpos>)
SUM variable(s); FLOOR(argument)
BY variable(s); INDEX (source, excerpt)
ID variable(s); INT(argument)
RUN; INTCK ('interval’, from, to)
INTNX ('interval’, start-from, increment, <'alignment'>)
Data Summarization and Validation Procedures LEFT(argument)
PROC MEANS DATA=SAS-data-set LOWCASE(argument)
<keyword-statistics> <options>; MDY (month, day, year)
CLASS variable(s); MONTH(date)
VAR variable(s); PROPCASE (argument<, delimiter(s)>)
RUN; QTR(date)
RIGHT(argument)
PROC FREQ DATA=SAS-data-set <options>; ROUND (argument, round-off-unit)
TABLES variable(s) </LIST> <CROSSLIST> SCAN (argument, n<<, delimiters>>)
<NOFREQ>; SUBSTR (argument, position <, n>)
TABLES variable1* variable2 </LIST> TIME ()
<CROSSLIST> <NOFREQ>; TODAY ()
<NOPERCENT> <NOROW> <NOCOL>; TODAYDATE ()
<COMPRESS>; TRANWRD (source, target, replacement)
<FORMCHAR (1,2,7) = ‘formchar-string’; TRIM(argument)
<NLEVELS>;
UPCASE(argument)
<NOPRINT>;
<ORDER=DATA|FORMATTED|FREQ|INTERNAL>=; WEEKDAY(date)
<PAGE>; YEAR(date)
RUN; YRDIF (start_date, end_date, basis)

SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS
Institute Inc. in the USA and other countries. ® indicates USA registration. Other brand and product names are
trademarks of their respective companies. Copyright © 2018 SAS Institute Inc. Cary, NC, USA. All rights reserved.

You might also like