使用SAS 9.4的基础编程

SAS认证专家考试指南

English Version | ← 返回首页

1 考试概述

SAS认证专家:使用SAS 9.4的基础编程考试旨在为希望展示其SAS编程语言基础知识的个人而设计。

考试代码: A00-231

时长: 2小时

题目: 60-65道选择题

及格分数: 68%

前提条件:

2 考试内容领域

2.1 1. 访问和创建数据结构 (30%)

2.1.1 导入数据

  • 从各种来源导入数据(文本文件、Excel文件等)
  • 使用PROC IMPORT过程
  • 理解数据集选项
/* 示例:导入CSV文件 */
PROC IMPORT DATAFILE="/path/to/data.csv"
    OUT=work.mydata
    DBMS=CSV
    REPLACE;
    GETNAMES=YES;
RUN;

2.1.2 创建和修改SAS数据集

  • 创建新变量
  • 使用赋值语句
  • 使用WHERE和IF语句筛选观测
  • 使用LENGTH、FORMAT和INFORMAT语句
/* 示例:创建新变量 */
DATA work.enhanced;
    SET work.mydata;
    
    /* 创建新变量 */
    total_sales = quantity * price;
    
    /* 筛选数据 */
    WHERE region = 'East';
    
    /* 格式化变量 */
    FORMAT sales_date DATE9.;
RUN;

2.2 2. 管理数据 (25%)

2.2.1 调查和汇总数据

  • 使用PROC CONTENTS检查数据结构
  • 使用PROC PRINT显示数据
  • 使用PROC MEANS获取汇总统计
  • 使用PROC FREQ获取频率分布
/* 示例:数据调查 */
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 合并SAS数据集

  • 使用SET语句连接数据集
  • 交错数据集
  • 使用MERGE语句合并数据集
  • 理解一对一、一对多和多对多合并
/* 示例:合并数据集 */
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;  /* 内连接 */
RUN;

2.3 3. 错误处理 (10%)

2.3.1 识别和纠正语法错误

  • 理解SAS日志消息
  • 识别语法错误
  • 使用调试技术
/* 要避免的常见语法错误 */

/* 缺少分号 */
DATA work.test
    SET work.mydata;  /* 错误:DATA后缺少分号 */
RUN;

/* 引号不匹配 */
DATA work.test;
    SET work.mydata;
    WHERE name = "John;  /* 错误:引号不匹配 */
RUN;

/* 无效的变量名 */
DATA work.test;
    SET work.mydata;
    1stplace = rank;  /* 错误:变量名不能以数字开头 */
RUN;

2.4 4. 为分析准备数据 (15%)

2.4.1 创建格式

  • 使用PROC FORMAT创建用户定义的格式
  • 将格式应用于变量
/* 示例:创建自定义格式 */
PROC FORMAT;
    VALUE agefmt
        0-17 = '儿童'
        18-64 = '成人'
        65-HIGH = '老年人';
    
    VALUE $regfmt
        'N', 'S', 'E', 'W' = '主要方向'
        'NE', 'SE', 'NW', 'SW' = '次要方向';
RUN;

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

2.4.2 操作数据

  • 使用函数操作数据
  • 字符函数:SUBSTR、SCAN、UPCASE、LOWCASE、COMPRESS
  • 数值函数:SUM、MEAN、MIN、MAX、ROUND
  • 日期函数:TODAY、DATE、YEAR、MONTH、DAY
/* 示例:使用函数 */
DATA work.manipulated;
    SET work.mydata;
    
    /* 字符函数 */
    last_name = SCAN(full_name, -1, ' ');
    email_upper = UPCASE(email);
    
    /* 数值函数 */
    average_sales = MEAN(q1_sales, q2_sales, q3_sales, q4_sales);
    
    /* 日期函数 */
    current_date = TODAY();
    birth_year = YEAR(birth_date);
    age = INTCK('YEAR', birth_date, current_date);
RUN;

2.5 5. 导出数据 (10%)

2.5.1 将数据导出到外部文件

  • 使用PROC EXPORT
  • 创建各种输出格式
/* 示例:导出数据 */
PROC EXPORT DATA=work.mydata
    OUTFILE="/path/to/output.csv"
    DBMS=CSV
    REPLACE;
RUN;

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

2.6 6. 生成报告 (10%)

2.6.1 使用过程生成报告

  • PROC PRINT用于详细报告
  • PROC REPORT用于自定义报告
  • PROC TABULATE用于汇总表
/* 示例:创建报告 */
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 学习资源

3.1 SAS官方资源

  1. SAS Programming 1: Essentials - SAS官方培训课程
  2. SAS Certification Prep Guide: Base Programming for SAS 9 - 官方学习指南
  3. SAS文档 - 免费在线参考

3.2 练习技巧

  1. 设置SAS环境
    • 下载SAS University Edition(免费)
    • 或使用SAS OnDemand for Academics
  2. 定期练习
    • 每天编写代码
    • 完成练习
    • 查看SAS日志中的错误
  3. 关注重点领域
    • 数据操作(30%)
    • 数据管理(25%)
    • 这两个领域占考试的55%
  4. 理解,而非死记硬背
    • 专注于概念,而不仅仅是语法
    • 理解代码为什么有效,而不仅仅是如何有效

4 常见陷阱

  1. 不检查SAS日志 - 始终查看日志中的警告和错误
  2. 误解合并逻辑 - 练习不同类型的合并
  3. 日期处理不正确 - 记住SAS日期是数值型
  4. 格式与输入格式混淆 - 格式显示数据,输入格式读取数据

5 下一步

完成基础编程认证后:

  1. 考虑高级编程认证
  2. 或探索统计业务分析师认证
  3. 在实际项目中应用您的技能

← 返回首页