- Level Professional
- Duration 25 hours
- Course by SAS
-
Offered by
About
This course is for business analysts and SAS programmers who want to learn data manipulation techniques using the SAS DATA step and procedures to access, transform, and summarize data. The course builds on the concepts that are presented in the Getting Started with SAS Programming course and is not recommended for beginning SAS software users. In this course you learn how to understand and control DATA step processing, create an accumulating column and process data in groups, manipulate data with functions, convert column type, create custom formats, concatenate and merge tables, process repetitive code, and restructure tables. This course addresses Base SAS software. Before attending this course, you should be able to write DATA step code to access data, subset rows and columns, compute new columns, and process data conditionally. You should also be able to sort tables using the SORT procedure and apply SAS formats.Modules
Course Overview and Logistics
1
Videos
- Welcome to the Course!
2
Readings
- Learner Prerequisites
- Using Forums and Getting Help
Access SAS Software and Set Up Data for the Course (REQUIRED)
1
Videos
- Practicing in This Course
1
Readings
- Access SAS Software and Set Up Practice Files (REQUIRED)
Module Overview
1
Videos
- Overview
Understanding DATA Step Processing
3
Assignment
- Activity 1.01
- Activity 1.02
- Practice: Using PUTLOG Statements to Examine Execution Steps
6
Videos
- DATA Step Review
- DATA Step Processing
- DATA Step Processing: Compilation
- DATA Step Processing: Execution
- Demo: DATA Step Processing in Action
- Viewing Execution in the Log
Directing DATA Step Output
5
Assignment
- Activity 1.03
- Activity 1.04
- Question 1.05
- Level 1 Practice: Conditionally Creating Multiple Output Tables
- Level 2 Practice: Conditionally Creating Columns and Output Tables
7
Videos
- Controlling DATA Step Processing
- Implicit and Explicit Output
- Sending Output to Multiple Tables
- Demo: Directing Row Output
- Controlling Column Output
- Demo: Directing Column Output
- Columns in the PDV
Module Review
1
Assignment
- Controlling DATA Step Processing
1
Readings
- Syntax Review
Module Overview
1
Videos
- Overview
Creating an Accumulating Column
4
Assignment
- Activity 2.01
- Question 2.02
- Level 1 Practice: Producing a Running Total
- Level 2 Practice: Producing Multiple Totals
3
Videos
- Demo: Creating an Accumulating Column
- Retaining Values in the PDV
- Using the Sum Statement
Processing Data in Groups
6
Assignment
- Activity 2.03
- Activity 2.04
- Activity 2.05
- Question 2.06
- Level 1 Practice: Generating an Accumulating Column within Groups
- Level 2 Practice: Generating an Accumulating Column within Multiple Groups
6
Videos
- Answering Questions about Groups
- Processing Sorted Data in Groups
- Demo: Identifying the First and Last Row in Each Group
- Subsetting Rows in the Execution Phase
- Demo: Creating an Accumulating Column within Groups
- Using Multiple BY Columns
Module Review
1
Assignment
- Summarizing Data
1
Readings
- Syntax Review
Module Overview
1
Videos
- Overview
Understanding SAS Functions and CALL Routines
2
Assignment
- Activity 3.01
- Activity 3.02
3
Videos
- Review of Functions
- Specifying Columns Lists
- Using a CALL Routine to Modify Data
Using Numeric and Date Functions
5
Assignment
- Activity 3.03
- Activity 3.04
- Question 3.05
- Level 1 Practice: Using the LARGEST and ROUND Functions
- Level 2 Practice: Working with Date/Time Values
7
Videos
- Using Numeric Functions
- Demo: Using Numeric Functions
- SAS Date, Datetime, and Time Values
- Extracting Data from a Datetime Value
- Calculating Date Intervals
- Shifting Date Values
- Demo: Shifting Date Values Based on an Interval
1
Readings
- Using Numeric Functions to Change Precision
Using Character Functions
6
Assignment
- Activity 3.06
- Activity 3.07
- Activity 3.08
- Activity 3.09
- Level 1 Practice: Using the SCAN and PROPCASE Functions
- Level 2 Practice: Searching for Character Strings
5
Videos
- Useful Character Functions
- Extracting Words from a String
- Demo: Using Character Functions to Extract Words from a String
- Searching for Character Strings
- Replacing Character Strings
3
Readings
- Removing Characters from a String
- Identifying Character Positions
- Building Character Strings
Using Special Functions to Convert Column Type
4
Assignment
- Activity 3.10
- Activity 3.11
- Question 3.12
- Activity 3.13
8
Videos
- Handling Column Type
- Converting Column Type
- Converting Character Values to Numeric Values
- Using a Generic Informat to Read Dates
- Converting the Type of an Existing Column
- Converting Numeric Values to Character Values
- Demo: Using the INPUT Function to Convert Column Types
- Demo: Using the PUT Function to Convert Column Types
Module Review
1
Assignment
- Manipulating Data with Functions
1
Readings
- Syntax Review
Module Overview
1
Videos
- Overview
Creating and Using Custom Formats
5
Assignment
- Activity 4.01
- Activity 4.02
- Activity 4.03
- Level 1 Practice: Creating Custom Formats Based on Single Values
- Level 2 Practice: Creating Custom Formats Based on a Range of Values
4
Videos
- Formatting Data Values
- Creating and Applying a Custom Format
- Using Ranges
- Demo: Creating and Using Custom Formats
Creating Custom Formats from Tables
4
Assignment
- Activity 4.04
- Activity 4.05
- Level 1 Practice: Creating a Custom Format from a Table
- Level 2 Practice: Using Conditional Processing to Create a Format from a Table
1
Discussions
- Your Turn - Evaluate different methods for creating custom formats
3
Videos
- Reading a Table of Values for a Format
- Demo: Creating Custom Formats from Tables
- Storing Custom Formats
Module Review
1
Assignment
- Creating and Using Custom Formats
1
Readings
- Syntax Review
Module Overview
1
Videos
- Overview
Concatenating Tables
3
Assignment
- Activity 5.01
- Level 1 Practice: Concatenating Like-Structured Tables
- Level 2 Practice: Concatenating Unlike-Structured Tables
3
Videos
- Concatenating Tables with Matching Columns
- Demo: Concatenating Tables
- Handling Column Attributes
Merging Tables
2
Assignment
- Question 5.02
- Activity 5.03
4
Videos
- What is a Merge?
- Processing a One-to-One Merge
- Processing a One-To-Many Merge
- Demo: Merging Tables
Identifying Matching and Nonmatching Rows
4
Assignment
- Question 5.04
- Activity 5.05
- Level 1 Practice: Performing a One-to-Many Merge
- Level 2 Practice: Writing Matches and Nonmatches to Separate Tables
6
Videos
- Merging Tables with Nonmatching Rows
- Identifying Matches and Nonmatches
- Demo: Merging Tables with Nonmatching Rows
- Merging Tables with Matching Column Names
- Merging Tables without a Common Column
- DATA Step Merge and PROC SQL Join
Module Review
1
Assignment
- Combining Tables
1
Readings
- Syntax Review
Module Overview
1
Videos
- Overview
Using Iterative DO Loops
3
Assignment
- Activity 6.01
- Level 1 Practice: Using Nested Iterative DO Loops (DATA Step with No SET Statement)
- Level 2 Practice: Using an Iterative DO Loop (DATA Step with a SET Statement)
5
Videos
- Processing Repetitive Code
- Iterative DO Loops
- Demo: Executing an Iterative DO Loop
- Output Inside and Outside the DO Loop
- Demo: Using Iterative DO Loops
Using Conditional DO Loops
3
Assignment
- Activity 6.02
- Level 1 Practice: Using a Conditional DO Loop
- Level 2 Practice: Using an Iterative and Conditional DO Loop
5
Videos
- Conditional DO Loops
- Checking the Condition
- Demo: Using Conditional DO Loops
- Combining Iterative and Conditional DO Loops
- Demo: Combining Iterative and Conditional DO Loops
Module Review
1
Assignment
- Processing Repetitive Code
1
Readings
- Syntax Review
Module Overview
1
Videos
- Overview
Restructuring Data with the DATA Step
4
Assignment
- Question 7.01
- Activity 7.02
- Level 1 Practice: Restructuring a Table Using the DATA Step: Wide to Narrow
- Level 2 Practice: Restructuring a Table Using the DATA Step: Narrow to Wide
4
Videos
- Understanding Table Structure
- Restructuring Data
- Demo: Creating a Narrow Table with the DATA Step
- Creating a Wide Table with the DATA Step
Restructuring Data with the TRANSPOSE Procedure
4
Assignment
- Activity 7.03
- Activity 7.04
- Level 1 Practice: Restructuring a Table Using PROC TRANSPOSE: Wide to Narrow
- Level 2 Practice: Restructuring a Table Using PROC TRANSPOSE: Narrow to Wide
5
Videos
- The Transpose Procedure
- Transposing Values within Groups
- Demo: Creating a Wide Table with PROC TRANSPOSE
- Creating a Narrow Table with PROC TRANSPOSE
- Changing Column Names
Module Review
1
Assignment
- Restructuring Tables
1
Readings
- Syntax Review
Auto Summary
"Doing More with SAS Programming" is a specialized course designed for business analysts and SAS programmers aiming to enhance their data manipulation skills using SAS software. This advanced course delves into the intricacies of the SAS DATA step and procedures, enabling learners to access, transform, and summarize data effectively. Building on foundational knowledge from the "Getting Started with SAS Programming" course, this offering is perfect for those already familiar with writing DATA step code, subsetting data, and using SAS formats. Throughout the course, participants will master techniques to control DATA step processing, create accumulating columns, manipulate data with functions, convert column types, and develop custom formats. Additionally, learners will gain expertise in concatenating and merging tables, processing repetitive code, and restructuring tables, all within the context of Base SAS software. Led by industry experts on Coursera, this professional-level course spans approximately 1500 minutes, providing in-depth training for those looking to elevate their SAS programming capabilities. Subscription options include Starter, Professional, and Paid plans, catering to a range of learning preferences and needs. Ideal for intermediate to advanced users, "Doing More with SAS Programming" is the perfect next step for those ready to advance their data science and AI proficiency with SAS.

Stacey Syphus