"Sunil--you are truly a SAS nerd! Excellent class and excellent instructor! I would recommend anyone who is preparing for their SAS certification exam to take Sunil's Sharpening Your SAS Skills Class.Thank you for your expertise and time. See you at the next PharmaSUG!"
Kathy Zhai, SAS Programmer, United BioSource Corporation, PharmaSUG 2012
SAS® Papers in this section will help you prepare for the SAS® Base and SAS® Advanced exams. See Compare and Conquer SAS Programming Techniques e-Guide. Also see SAS Clinical Trials Programmer Certification exam, SAS Technical Interview Preparation and Compare and Conquer SAS Programming Techniques.
Interested in the self-study Sharpening Your SAS Skills course notes to better prepare for the SAS Base Certification exam? Email us for more info.
How good are your SAS® Skills? Want to improve your skills with free SAS training and tech support? Download Q&A slides to confirm. Test your skills with flashcards and preperation exam.
SAS Base Exam Section Syntax Reference, Pocket Reference, Cheat Sheet I, II, III, Proc SQL |
SAS Advanced Exam Section |
---|---|
Tests 1. Import and export raw data files 2. Manipulate and transform data 3. Combine SAS data sets 4. Create basic detail and summary reports using SAS procedures 5. Identify and correct data, syntax and programming logic errors |
Tests 1. Using advanced DATA step programming statements and efficiency techniques to solve complex problems. 2. Writing and interpreting SAS SQL code 3. Creating and using the SAS MACRO facility. |
Data Access |
Proc SQL |
Data Management |
SAS Macro Programming |
Data Analysis | SAS Program Efficiency |
Data Presentation ODS - Gallery Proc Print Proc Report - Gallery Proc Tabulate - Gallery |
|
SAS Version 9.2 SAS Technical Tips SAS Debugging SAS Technical Interview Prep |
|
Mock Exam with 145 questions, answers (password required) (See also Common FAQ sections for DATA Step, Proc Report, etc.) |
Mock Exam (See Common FAQ sections for Proc SQL, Macro Programming and Program Efficiency) SAS Macro Top Ten Questions (and Answers) |
SAS Base Certification Exam Detail Outline with SAS Paper Reference
I. Accessing Data |
|
Use FORMATTED, LIST and COLUMN input to read raw data files |
The Power of SAS Input Statements: Imelda C. Go |
Use INFILE statement options to control processing when reading raw data files |
The SAS INFILE and FILE Statements: Steven First |
Use various components of an INPUT statement to process raw data files including column and line pointer controls, and trailing @ controls |
The Input Statement: Where It's @ : Ronald Cody |
Combine SAS data sets using the DATA step |
Get it together: Combining data with SAS® MERGE, UPDATE, and SET : Mel Widawski |
II. Creating Data Structures |
|
Create temporary and permanent SAS data sets |
A Hands-On Introduction to SAS® DATA Step Programming :Debbie Buck |
Create and manipulate SAS date values | Looking for a Date? A Tutorial on Using SAS® Dates and Times: Arthur L. Carpenter |
Use DATA Step statements to export data to standard and comma delimited raw data files |
The Little SAS Book – Chapter 9 Exporting Your Data. |
Control which observations and variables in a SAS data set are processed and output | Programming with the KEEP, RENAME, and DROP Data Set Options: Stephen Philp WHERE vs. IF Statements: Knowing the Difference in How and When to Apply: Sunil Gupta |
III. Managing Data | |
Investigate SAS data libraries using base SAS utility procedures |
PROC CONTENTS and DATASETS from SAS Documentation. |
Sort observations in a SAS data set |
The SORT Procedure: Beyond the Basics: Britta Kelsey Bassett |
Conditionally execute SAS statements |
UTILIZING CONDITIONAL LOGIC TO IMPROVE EFFICIENCY: Karla E. Atwell |
Use assignment statements in the DATA step |
How SAS Thinks : Neil Howard |
Modify variable attributes using options and statements in the DATA step | SAS®'s Various Varying Variables, or 1000+ Ways to Manipulate SAS Variables:Paul A. Choate |
Accumulate sub-totals and totals using DATA step statements |
The Power of the BY Statement: Paul Choate |
Use SAS functions to manipulate character data, numeric data, and SAS date values |
|
Use SAS functions to convert character data to numeric and vice versa |
INPUT and PUT function from SAS Documentations. |
Process data using DO LOOPS |
Do Which? Loop, Until or While? A Review Of Data Step And Macro Algorithms: Ronald J. Fehd |
Process data using SAS arrays |
Arrays Made Easy: An Introduction to Arrays and Array Processing: Steve First and Teresa Schudrowitz |
IV. Generating Reports |
|
Generate list reports using the PRINT and REPORT procedures |
A Gentle Introduction to the Powerful REPORT Procedure: Ben Cochran |
Generate summary reports and frequency tables using base SAS procedures |
Proc FREQ –What's it really good for? Theresa Gordon and Monique Eleby |
Enhance reports through the use of labels, SAS formats, user-defined formats, titles, footnotes and SAS System reporting options |
SAS Documentation on following topics: Label statement/ dataset option, label option in proc print, title and footnote statement and proc report options like headline, headskip etc. |
Generate HTML reports using ODS statements |
Creating HTML Output with Output Delivery System, Kirk Paul Lafler |
V. Handling Errors |
|
Identify and resolve programming logic errors Recognize and correct syntax errors Examine and resolve data errors |
Errors, Warnings, and Notes (Oh My) A Practical Guide to Debugging SAS Programs, Susan J. Slaughter and Lora D. Delwiche |
SAS Advance Certification Exam Detail Outline with SAS Paper Reference
I. Accessing Data Using SQL |
|
Generate detail reports by working with a single table, joining tables, or using set operators in the SQL procedure. |
PROC SQL for DATA Step Die-hards, Christianna S. Williams |
Generate summary reports by working with a single table, joining tables, or using set operators in the SQL procedure. |
|
Construct sub-queries and in-line views within an SQL procedure step. |
|
Compare solving a problem using the SQL procedure versus using traditional SAS programming techniques. |
|
Access Dictionary Tables using the SQL procedure. | SAS® DICTIONARY: Step by Step, Patrick Thornton |
II. Macro Processing |
|
Create and use user-defined and automatic macro variables within the SAS Macro Language. |
Nine Steps to Get Started using SAS® Macros
Jane Stroupe |
Automate programs by defining and calling macros using the SAS Macro Language. |
|
Understand the use of macro functions. | Using Macro Functions, Art Carpenter |
Use various system options that are available for macro debugging and displaying values of user-defined and automatic macro variables in the SAS log. |
|
Create data-driven programs using SAS Macro Language. |
|
III. Advanced Programming Techniques |
|
Demonstrate the use of advanced data look-up techniques such as array processing, hash objects, formats, and combining/merging data. |
SAS® HASH Programming basics, Daniel Sakya |
Reduce computing resource requirements by controlling the space required to store SAS data sets using compression techniques, length statements, or eliminating variables and observations. |
|
Develop SAS programs which incorporate data step views and use the FCMP procedure. |
Using PROC FCMP to the Fullest: Getting Started and Doing More, Arthur Carpenter |
Perform effective benchmarking by using the appropriate SAS System options and interpreting the resulting resource utilization statistics. |
SAS® System Options are Your Friends, Edward Heaton |
Identify appropriate applications for using indexes and create them using the DATA step, the DATASETS procedure, or the SQL procedure. | The Basics of Using SAS Indexes, Michael A. Raithel |
Compare techniques to eliminate duplicate data using the DATA step, the SORT procedure, and the SQL procedure. | Checking for Duplicates, Wendi Wright |
Sample Practice SAS questions: SAS Institute, SAS Institute Certification Program and Outline
Sample Technical SAS interview questions: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
SAS Video Tip Insights into SAS Certification exam selection and preparation process, 2
Reading, Combining, and Modifying SAS Data Sets
(Click on image below to start SAS® Certification mind map)
To better prepare for career enhancement, I suggest being an expert in these three main areas: data management, advanced SAS® programming, and analytical skills. Download Quick Results with Proc SQL and Anatomy of SAS Macros e-Guides to better prepare for the SAS® Advanced Certification Exam.
Example Questions
1. What are two ways to transpose data? - Proc Transpose and arrays.
2. Other than using Proc Freq, what is another way to count in SAS? - RETAIN, FIRST, LAST.
3. What does the ?? question mark mean in the code y=input(x, ?? 2.)? - Suppress printing or error message and input lines to SAS log and prevents the automatic variable _ERROR_ from being set to 1 when invalid data is read.
4. When comparing -1 and . in SAS, which one is bigger? - The number -1 is bigger. SAS treats . as the smallest value.
5. What macro function can be used to determine if a dataset exists? - %LET EXIST=%SYSFUNC(EXIST(DATASETNAME));
6. Is CALL SYMPUT macro variable global or local? - Global.
Beginner Paper Basic SAS PROCedures for Generating Quick Results, Kirk Lafler, SAS® Programming Basics: Producing Results from Your Data, Helen Carey
SAS Presentation The Worst Data Step Traps and Pitfalls, How to Recognize Them and Avoid Them
1. The Ultimate Match Merge: Hiring the Best SAS Programmers, Neil Howard
2. Assessing SAS® Skill Level during the Interviewing Process, Jenine Milum
4. 10 Things Experienced SAS® Programmers Don’t Know – But Should, Doug Zirbel
5. New to SAS® and New to Programming? What You Need to Do Before
Typing Code, Stephanie Thompson
6. How to Think Through the SAS® DATA Step, Ian Whitlock
9. Recruiting, Interviewing and hiring a SAS Programming Staff, Judith H. Mopsik
13. The Art of Debugging, Ian Whitlock
14. So You Want to be SAS Certified, Ben Cochran
15. The SAS® Test from Hell: How Well do You REALLY know SAS?, Glen Becker
16. Using SAS® OnDemand for Academics: Ten Tips for Success, Randy Mullis
17. Learning Data Science with SAS® University Edition and JupyterLab, Brian Gaines
18. Focused Preparation for SAS® Certification Exams Terry Barham
19. SAS Certification Prep Blog
20. SAS Certification Exam Sample Questions
Purchase course notes with free limited e-mail support to help you prepare for the Base Exam.
Sharpening Your SAS Skills: Preparing for Base Certification
Sharpening Your SAS Skills references
Order Sharpening Your SAS Skills book to prepare for the SAS® Base Certification Exam.
Order Sharpening Your Advanced SAS Skills book to prepare for the SAS Advanced Certification Exam.
Download SAS programs from Handbook of SAS® Data Step Programming