2012年12月
SAS培训
内容
• SAS
• DATA部
• PROC部
• 函数
• 输出图表
3页 秘密
SAS介绍
SAS(Statistical Analysis System)是由美国北卡罗来纳州州立大学
1966年开发的统计分析软件,总部位于美国北卡罗来纳州的凯瑞, 是全球最
大的私有软件公司
4页 秘密
SAS介绍
SAS
数据访问
数据呈现
数据分析
数据管理
5页 秘密
SAS介绍
统计分析
绘图
质量控制
经济计量学和时间序列
分析
运筹学模块
交互式矩阵程序设计语
言模块
快速数据处理的交互式菜
单系统
交互式全屏幕软件应用系
统模块
BAS
6页 秘密
SAS安装
7页 秘密
SAS界面
输出
程序
资源管理器
运行F8
日志
8页 秘密
SAS语法
• 弱语言
• 不区分大小写
• ;表示结束
• 字符串和数值
9页 秘密
SAS数据
• 变量(Oracle-列)
• 观测(Oracle-行)
观测 变量
10页 秘密
第一个SAS程序
数据部
程序部
11页 秘密
内容
• SAS
• DATA部
• PROC部
• 函数
• 输出图表
12页 秘密
DATA部
动态处理数据的过程。
默认情况下你所处理的数据保存在“Work”逻辑库中,结束会话后数据将会
自动清空。
自己可以建立永久逻辑库,保存数据
13页 秘密
DATA部
14页 秘密
DATA部
读取数据是一行一行读取的,并且一个观测一个观测读取的。
15页 秘密
DATA部
默认分割符为空格
默认字段长度8字节,超过8个字节会自动截取
默认为数值类型
$表示字符串 ,字符串值被数值变量读到,则会为null(.代表null)
16页 秘密
DATA部
17页 秘密
DATA部-空数据集
18页 秘密
DATA部-INPUT
用于描述输入的数据。从外部文件或紧跟的CRADS读入数据,赋给该语句
列出的各个变量。
格式:INPUT <数据项描述>……
一般认为读入的数据是数值型,除非:1 变量名后有$号;2 使用字符的输
入格式表示;3 变量事先被定义成字符型
数据中的缺项值用“.”表示。如果读入数据与数据类型不匹配,则按无效
数据置为缺项值
19页 秘密
DATA部-INPUT列表输入
格式:INPUT 变量名 [$]……;
对输入数据的要求:
1 输入数据项之间至少被1个空格分隔;
2 用句号表示缺失值;
3 字符型变量缺省最大长度为8,除非用LENGTH、ATTRIB、INFORMAT
等语句给定更长的长度;INPUT语句中列出的变量顺序要跟输入数据的顺序
一致。
如果INPUT后变量数量少于输入数据中的列数,则后面的列被略去
如果输入数据前后包含空格,会被判为作为分隔符的空格
20页 秘密
DATA部-INPUT列输入
格式:INPUT 变量名 [$] 开始列[-结束列];
输入值可以以任何的次序读入,而不管它们在输入记录中的
位置
字符型数据可以包含空格。全部是空格或只含一个“.”的
字段会被解释为缺失值
可读全部或部分数据
21页 秘密
DATA部-INPUT格式化输入
格式:INPUT 变量名 <修饰符> 输入格式……;
输入格式例子:INPUT name $10. birthday mmddyy10. weight ;
数据中的年月日之间应用特殊符号或空格隔开。格式化输入时,数据项不再
以空格作为结束标志,而是由读指针按给出的格式长度移动,依次读数据项。
数据前后的空格也要计算在内
22页 秘密
DATA部-INPUT格式列表
INPUT (score1-score5) (4. 4. 4. 4. 4.);
INPUT (score1-score5) (4.);
INPUT (name core1-score5) ($10. 5*4.);
23页 秘密
DATA部-INPUT格式修饰符
“:”修饰符。表示从下一个非空格列读入数据,直到:
1 遇到再下一个空格列;
2 读到预先定义的变量长度;3 数据行结束。哪个先出现就在哪结束
“ &”修饰符。表示从下一个非空格列读入数据,直到:
1 遇到连续的两个空格;
2 在DATA步中定义的最初的变量长度;
3 输入行结束。哪个先出现就在哪结束
24页 秘密
DATA部-INPUT指针控制
列指针
绝对指针控制:数值型(指出位置)、字符型(指出要匹配的字符串)相
对指针控制
行指针
数值型指针
@n:INPUT @15 sales 5.;
@指针变量:A=25; INPUT num 1-6 @A num $ 10.;
@表达式:
25页 秘密
DATA部INPUT指针控制
字符型指针
三种形式:@’字符串’
@字符变量
@字符表达式
26页 秘密
DATA部-INPUT相对指针控制
三种形式:+n,+指针变量,+表达式,
意指把指针从当前位置移过规定的列数
负数表示指针往前移动
27页 秘密
DATA部-INPUT列相对指针控制
适用于一个观测值占有多个输入行的情况
4种形式:#n,#指针变量,#表达式,/
INPUT语句中,#号后最大的数字决定每个观测占有多少行
/表示把指针移动到下一输入行的第一列
当每个观测有多个输入行,但不从最后一行读取数据的时候,在INPUT
语句末尾必须使用#将指针移到最后一行
28页 秘密
DATA部-INPUT列相对指针控制
29页 秘密
DATA部-INPUT行保持说明符
多个INPUT语句读取同一数据行的数据,使用单尾随符@
一个INPUT语句在一个输入行中读取多个观测,则使用双尾随符@@
30页 秘密
DATA部-INPUT逗号分隔符
infile datalines dsd delimiter='ab';
31页 秘密
DATA部-INPUT DATALINES语句
相当于CARDS语句
该语句必须是数据步的最后一条语句
32页 秘密
DATA部-INPUT MISSOVER处理
33页 秘密
DATA部-其他语句
LENGTH语句
LABEL语句
INFORMAT/FORMAT语句
MISSING语句
注释语句
OPTIONS语句
34页 秘密
DATA部-其他语句
35页 秘密
DATA部-其他方式建立数据集
从外部文本数据文件读入数据
从已建立的数据集中读入数据
从Excel等数据单中导入数据
从Oracle等数据库中读取数据
36页 秘密
DATA部-文件方式
37页 秘密
DATA部-已有数据集
38页 秘密
DATA部-Excel导入
39页 秘密
DATA部-数据库导入
40页 秘密
DATA部-数据集整理
SET 横向合并
MERGE 纵向合并
MODIFY 修改定义
UPDATE 用子数据集修改主数据集
41页 秘密
DATA部-数据集整理SET
42页 秘密
DATA部-数据集整理MERGE
43页 秘密
DATA部-数据集整理MODIFY
44页 秘密
DATA部-数据集整理UPDATE
内容
• SAS
• DATA部
• PROC部
• 函数
• 输出图表
46页 秘密
PROC部-常用过程
名称 功能描述
PRINT 打印结果集
SORT 结果集排序
MEANS 对数据变量进行简单描述统计
FREQ 频数,累计百分比
UNIVARIATE
有MEANS功能外还有偏度、峰度、四分位和
众数等的统计项
TABULATE 制表
47页 秘密
PROC部-子过程
过程 功能描述
BY 指明分组变量,需要排序
CLASS 指明分组变量,不需要排序
FREQ 变量求频数
VAR 需要统计的变量
WEIGHT 指明该变量的权重
ID 指明用哪个标号
OUTPUT 统计信息输出到指定的数据集
48页 秘密
PROC部-SORT&PRINT
49页 秘密
PROC部-MEANS
50页 秘密
PROC部-MEANS
51页 秘密
PROC部-MEANS
52页 秘密
PROC部-FREQ
53页 秘密
PROC部UNIVARIATE
54页 秘密
PROC部UNIVARIATE
55页 秘密
PROC部UNIVARIATE
56页 秘密
PROC部-TABULATE
57页 秘密
PROC部-TABULATE
58页 秘密
PROC部-TABULATE
59页 秘密
内容
• SAS
• DATA部
• PROC部
• 函数
• 输出图表
60页 秘密
PROC部-函数
字符串函数
数字函数
日期函数
统计函数
SAS的函数使用在一观测行上,并不是在变量也就是列上
61页 秘密
PROC部-函数-字符串
函数 功能
SUBSTR 字符串截取
SCAN 查找到的特殊字符处开始分割字符串
INDEX 查找一个字符串中第一次出现的某个字符的位置
LENGTH 字符串长度
COMPRESS 从字符串中溢出指定的字符或字符子串
TRANSLATE 字符串替换
TRIM 去除尾部空格
UPCASE 转换大写
LOWCASE 转换小写
URLDECODE 编码转换
TRANWRD 对指定字符串进行替换
RANK 转换为ASCII编码
BYTE 转换对应的ASCII或者EBCDIC字符
REPEAT 对指定字符串根据指定次数重复书写
LEFT 左对齐
REVERSE 反转字符串
62页 秘密
PROC部-函数
63页 秘密
PROC部-函数-数字
函数 功能
SUM 求和
MAX 最大值
MIN 最小值
ABS 绝对值
MOD 余数
ROUND 四舍五入
SQRT 平方根
CEIL 最小整数
FLOOR 最大整数
INT 取整
LOG 自然对数
LOG2 以2为底的输入值的对数
LOG10 以10为底的输入值的对数
EXP e为指数的X幂的值
SIN 正弦
64页 秘密
PROC部-函数-日期
函数 功能
YEAR 取日期的年份
MONTH 取日期的月份
DAY 取日期的日
MDY 从年月日中返回日期值
WEEKDAY 星期几
QTR 季度
HMS 输入一个时间值返回一个SAS时间
DHMS 根据输入日期值返回一个SAS日期时间
DATEPART 根据输入日期值返回一个SAS日期
INTCK 两个日期之间的间隔
TODAY 返回当前日期
DATETIME 返回当前日期时间
JULDATE 转换输入日期为5位或者7位的Julian
65页 秘密
PROC部-函数-统计
函数 功能
MEAN 平均值
PDF 分布密度
CDF 累计分布
PROBNORM 标准正态分布概率
VAR 方差
STD 标准差
STDERR 均值估计的标准误差
CV 变异系数
SKEWNESS 偏斜度
KURTOSIS 峰度值
USS 为校正的平方和
CSS 修正的离差平方和
RANGE 最大值和最小值之间的极差
66页 秘密
内容
• SAS
• DATA部
• PROC部
• 函数
• 输出图表
67页 秘密
PROC部-CHART&GCHART-饼图
68页 秘密
PROC部-CHART&GCHART-饼图
69页 秘密
PROC部-CHART&GCHART-饼图
70页 秘密
PROC部-CHART&GCHART-饼图
71页 秘密
PROC部-CHART&GCHART-柱形图
72页 秘密
PROC部-CHART&GCHART-柱形图
73页 秘密
PROC部-CHART&GCHART-柱形图
74页 秘密
PROC部-CHART&GCHART-柱形图