Base Programming Using SAS 9.4

SAS Certified Specialist Exam Guide

中文版本 | ← Back to Home

1 Exam Overview

The SAS Certified Specialist: Base Programming Using SAS 9.4 exam is designed for individuals who want to demonstrate their fundamental knowledge of the SAS programming language.

Exam Code: A00-231

Duration: 2 hours

Questions: 60-65 multiple choice questions

Passing Score: 68%

Prerequisites: None

2 Exam Content Areas

2.1 1. Access and Create Data Structures (30%)

2.1.1 Import Data

  • Import data from various sources (text files, Excel files, etc.)
  • Use PROC IMPORT procedure
  • Understand data set options
/* Example: Importing a CSV file */
PROC IMPORT DATAFILE="/path/to/data.csv"
    OUT=work.mydata
    DBMS=CSV
    REPLACE;
    GETNAMES=YES;
RUN;

2.1.2 Create and Modify SAS Data Sets

  • Create new variables
  • Use assignment statements
  • Subset observations using WHERE and IF statements
  • Use LENGTH, FORMAT, and INFORMAT statements
/* Example: Creating new variables */
DATA work.enhanced;
    SET work.mydata;
    
    /* Create new variable */
    total_sales = quantity * price;
    
    /* Subset data */
    WHERE region = 'East';
    
    /* Format variables */
    FORMAT sales_date DATE9.;
RUN;

2.2 2. Manage Data (25%)

2.2.1 Investigate and Summarize Data

  • Use PROC CONTENTS to examine data structure
  • Use PROC PRINT to display data
  • Use PROC MEANS for summary statistics
  • Use PROC FREQ for frequency distributions
/* Example: Data investigation */
PROC CONTENTS DATA=work.mydata;
RUN;

PROC MEANS DATA=work.mydata N MEAN STD MIN MAX;
    VAR sales revenue;
RUN;

PROC FREQ DATA=work.mydata;
    TABLES region product;
RUN;

2.2.2 Combine SAS Data Sets

  • Concatenate data sets with SET statement
  • Interleave data sets
  • Merge data sets using MERGE statement
  • Understand one-to-one, one-to-many, and many-to-many merges
/* Example: Merging data sets */
PROC SORT DATA=work.sales;
    BY customer_id;
RUN;

PROC SORT DATA=work.customers;
    BY customer_id;
RUN;

DATA work.combined;
    MERGE work.sales(IN=a) work.customers(IN=b);
    BY customer_id;
    IF a AND b;  /* Inner join */
RUN;

2.3 3. Error Handling (10%)

2.3.1 Identify and Correct Syntax Errors

  • Understand SAS log messages
  • Identify syntax errors
  • Use debugging techniques
/* Common syntax errors to avoid */

/* Missing semicolon */
DATA work.test
    SET work.mydata;  /* ERROR: Missing semicolon after DATA */
RUN;

/* Unmatched quotes */
DATA work.test;
    SET work.mydata;
    WHERE name = "John;  /* ERROR: Unmatched quote */
RUN;

/* Invalid variable names */
DATA work.test;
    SET work.mydata;
    1stplace = rank;  /* ERROR: Variable names cannot start with numbers */
RUN;

2.3.2 Identify and Correct Programming Logic Errors

  • Review unexpected results
  • Check data step processing
  • Validate output

2.4 4. Prepare Data for Analysis (15%)

2.4.1 Create Formats

  • Use PROC FORMAT to create user-defined formats
  • Apply formats to variables
/* Example: Creating custom formats */
PROC FORMAT;
    VALUE agefmt
        0-17 = 'Child'
        18-64 = 'Adult'
        65-HIGH = 'Senior';
    
    VALUE $regfmt
        'N', 'S', 'E', 'W' = 'Cardinal'
        'NE', 'SE', 'NW', 'SW' = 'Intercardinal';
RUN;

DATA work.formatted;
    SET work.mydata;
    FORMAT age agefmt. region $regfmt.;
RUN;

2.4.2 Manipulate Data

  • Use functions to manipulate data
  • Character functions: SUBSTR, SCAN, UPCASE, LOWCASE, COMPRESS
  • Numeric functions: SUM, MEAN, MIN, MAX, ROUND
  • Date functions: TODAY, DATE, YEAR, MONTH, DAY
/* Example: Using functions */
DATA work.manipulated;
    SET work.mydata;
    
    /* Character functions */
    last_name = SCAN(full_name, -1, ' ');
    email_upper = UPCASE(email);
    
    /* Numeric functions */
    average_sales = MEAN(q1_sales, q2_sales, q3_sales, q4_sales);
    
    /* Date functions */
    current_date = TODAY();
    birth_year = YEAR(birth_date);
    age = INTCK('YEAR', birth_date, current_date);
RUN;

2.5 5. Export Data (10%)

2.5.1 Export Data to External Files

  • Use PROC EXPORT
  • Create various output formats
/* Example: Exporting data */
PROC EXPORT DATA=work.mydata
    OUTFILE="/path/to/output.csv"
    DBMS=CSV
    REPLACE;
RUN;

/* Export to Excel */
PROC EXPORT DATA=work.mydata
    OUTFILE="/path/to/output.xlsx"
    DBMS=XLSX
    REPLACE;
RUN;

2.6 6. Generate Reports (10%)

2.6.1 Use Procedures to Generate Reports

  • PROC PRINT for detailed reports
  • PROC REPORT for customized reports
  • PROC TABULATE for summary tables
/* Example: Creating reports */
PROC PRINT DATA=work.mydata;
    VAR name department salary;
    WHERE salary > 50000;
RUN;

PROC REPORT DATA=work.mydata;
    COLUMN region product sales;
    DEFINE region / GROUP;
    DEFINE product / GROUP;
    DEFINE sales / ANALYSIS SUM;
RUN;

3 Study Resources

3.1 Official SAS Resources

  1. SAS Programming 1: Essentials - Official SAS training course
  2. SAS Certification Prep Guide: Base Programming for SAS 9 - Official study guide
  3. SAS Documentation - Free online reference

3.2 Practice Tips

  1. Set up SAS Environment
    • Download SAS University Edition (free)
    • Or use SAS OnDemand for Academics
  2. Practice Regularly
    • Write code daily
    • Work through exercises
    • Review SAS log for errors
  3. Focus on Key Areas
    • Data manipulation (30%)
    • Data management (25%)
    • These two areas make up 55% of the exam
  4. Understand, Don’t Memorize
    • Focus on concepts, not just syntax
    • Understand why code works, not just how

4 Common Pitfalls

  1. Not checking the SAS log - Always review the log for warnings and errors
  2. Misunderstanding merge logic - Practice different types of merges
  3. Incorrect date handling - Remember SAS dates are numeric
  4. Format vs. Informat confusion - Formats display data, informats read data

5 Sample Questions

5.1 Question 1

What is the result of the following code?

DATA work.test;
    x = 1;
    y = 2;
    z = x + y;
RUN;

Answer: A data set named TEST with one observation and three variables (x=1, y=2, z=3).

5.2 Question 2

Which statement correctly merges two data sets by a common variable?

A. DATA merged; MERGE dataset1 dataset2; RUN;

B. DATA merged; MERGE dataset1 dataset2; BY id; RUN;

C. DATA merged; SET dataset1 dataset2; BY id; RUN;

Answer: B - The MERGE statement requires a BY statement to specify the common variable.

6 Next Steps

After completing Base Programming certification:

  1. Consider Advanced Programming certification
  2. Or explore Statistical Business Analyst certification
  3. Apply your skills in real-world projects

← Back to Home