LOGO For Immediate Assistance Call 855-211-9361


 SAS Programming & Reporting


Call for availability 855-211-9361

This instructor-led SAS Programming training course provides the student with a background in how the SAS system (for Windows or Unix) works and how they can use it to carry out data analysis or manipulation. Through hands-on exercises, students will learn how to take data from a variety of different formats and create SAS data sets. Additionally, students will then be taught how to perform basic analysis in SAS and write basic SAS procedures.

Course Overview

By the end of the class students will be able to:

  • Understand the basics of how the SAS system works.
  • Work with SAS either in Unix or Windows.
  • Know how to read data into SAS from a variety of formats.
  • Work with different formats in SAS.
  • Be familiar with basic SAS functions.
  • Work with SAS procedures.
  • Perform basic graphing in SAS.
  • Have an introductory knowledge of Proc SQL and SAS Macro.


A general working knowledge of desktop business software is the only technical prerequisite.

Course Outline

  • Introduction

    • Goals of the Course
    • Software Used in the Course
  • Some Unix Basics

    • Basic UNIX Commands
    • The Text Editor
    • Getting Some Experience with A Text Editor
  • Running a SAS Program from the UNIX Platform

    • The .sas File
    • Comments in SAS
    • The .log File
    • Working with .sas and .log files in Unix
    • The .lst File
    • Working with the .sas, .log, and .lst File Types
  • Creating SAS Datasets

    • Overview – Different Ways to Create SAS Datasets
    • Creating SAS Datasets using a datalines (or cards) Statement
    • Using datalines/cards to Read In A SAS Dataset
    • Using datalines/cards with Column Pointers
    • Reading in Data with Column Pointers
    • Using an infile Statement to Create SAS Datasets from External Files
    • Reading in an External Flat File
    • Options with the infile Statement
    • infile Options
    • Creating SAS Datasets from Already Existing SAS Datasets
    • Building Subsets of SAS Datasets
    • where Statement Options
    • Keep and Drop Statements
    • Creating a New Dataset as a Subset of an Existing SAS Dataset
    • Permanent vs. Temporary SAS Datasets
    • The libname Statement
    • Creating Permanent SAS Datasets
    • Stacking Two Datasets - Revisiting the set Statement
    • Combing Two Datasets
    • proc sort Procedure
    • The merge Statement
    • Merging Two Datasets
    • Performing Merges Using the IN= Option
    • Creating More Than One Dataset At a Time
    • Using the merge and output Statements
    • Reading In a Date from Raw Data
    • Creating a SAS Date from Month, Day, and Year
    • Computing Date Intervals
    • Working with Precise Dates
    • Rounding Numbers
    • Computing Means, Sums, and Counting Non-Missing Values
    • Character-to-Numeric Conversion, Using the INPUT Function
    • Numeric-to-Character Conversion, Using the put Function
    • Character to Numeric and Numeric to Character
    • Substrings
    • Removing Blanks or Other Characters From a String
    • Concatenating Strings
    • Summary
  • An In-Depth Look at SAS Procedures

    • proc contents
    • Using proc print to Create Simple Reports
    • Adding Column Totals and Subtotals, Observation Counts and Footnotes
    • Proc Print Exercise with Different Calculations
    • Using proc freq
    • Using proc means to Perform Analysis
    • Creating a Summary Report Using proc means
  • SAS Efficiency

    • Tip 1) Avoid Unnecessary DATA Steps
    • Tip 2) Processing Selected Raw Records Using IF
    • Tip 3) Processing Selected SAS Data Set Observations Using WHERE Statements in Procedures
    • Tip 4) Drop Unnecessary Variables When Building a SAS Data Set from Raw Data
    • Tip 5) Use if/then-else Statements Instead of Multiple if Statements
    • Tip 6) Use proc append to Join Similar Datasets
    • Tip 7) Using a retain Statement to Initialize Constants
    • Tip 8) Avoiding Unnecessary Sorts: Use a class Statement When Possible
    • Tip 9) Sort Only What You Have To
    • SAS Efficiency Exercise
  • Graphing in SAS

    • proc chart
    • Creating a Vertical Bar Chart
    • Creating a Horizontal Bar Chart
    • Creating a Vertical Bar Chart (System-Defined Midpoints)
    • Creating a Vertical Bar Chart (User-Defined Midpoints)
    • Creating a Vertical Bar Chart (Using the Discrete Option)
    • Representing Two Variables on One Axis
    • Creating Three-Dimensional Block Charts
    • Charting Exercises
  • proc SQL

    • PROC SQL Exercises