第一讲、SAS课程介绍
一、数据类型
a. 横截面数据集(cross-sectional data set):即给定时点对个人、家庭、企业、国家或一系列其他单位采集的样本所构成的数据集(应该忽略细小的时间差别)
b.时间序列数据集(time series data set)
c.混合横截面数据集(pooled cross section data set)
d.综列数据集(panel data set)
二、SAS模块介绍
Base SAS:
1、数据管理功能
2、基础统计计算功能
3、报表生成和图形显示功能
SAS/STAT 统计分析
SAS/INSIGHT 数据探索
SAS/ASSIST 面向任务的易学易用模块
SAS/ETS 时间序列处理
SAS/OR 运筹学和工程管理
SAS/QC 质量控制
SAS/IML 矩阵运算
SAS/GRAPH 绘画
SAS/AF 面向对象编程(OOP)的应用开发工具,拓展SAS的功能
SAS/EIS 面向对象编程的开发工具,用于开发企业信息系统
SAS/ACCESS 数据访问
SAS/TOOLKIT 扩充工具,把用其他软件编写的程序转化成SAS的组成部分
SAS/Warehouse Administrator 数据仓库管理
SAS/Enterprise Miner 数据挖掘
SAS/Text Miner 文本挖掘
SAS/SHARE 数据库的并发式控制专门软件
SAS/CONNECT 使各平台SAS系统进行分布式处理,从而有效利用各平台机器资源
SAS/GIS 地理信息系统与空间数据的显示分析
SAS/SPECTRAVIEW 数据可视化分析工具,用几何成像的方式来分析多维数据
SAS/Intrnet 提供构建基于SAS的企业内部网络支持
SAS/FSP 快速数据处理的交互式菜单系统
SAS/CALC 功能完善的多维电子表格软件
SAS/ENGLISH 提供利用自然英语获取信息的能力
SAS/SECURE 网络传输加密
SAS/OLAP SERVER 多维数据存储及汇总结果呈现
SAS/GENETICS: SAS公司的第一个科学研究应用软件,应用于遗传学,有5个分析过程
SAS/High-Performance Forecasting:提供快速高效的预测结果
SAS/C, SAS/C++ 针对IBM大型机的开发工具SAS/LAB 向导式的数据分析软件,特别针对day-to-day类型数据
三、SAS工作空间
程序窗口(PROGRAM EDITOR)运行记录窗口(LOG)输出窗口(OUTPUT)
第二讲、SAS系统的安装,SAS运行环境的界面
1、界面介绍
2、Fill values 功能
3、Extract 功能
4、Edit/windows/tool菜单使数据探索色彩缤纷(注意选项设置)
5、打开分布、拟合、多元等的窗口之后主菜单Tables、Graphs、Curves菜单才被开放。
Fly,insurance数据集示例
其他功能:
1、分布(输出大多数常用的统计量)
2、拟合(回归分析)
3、多元(方差分析)
第三讲、Insight模块
第四讲、SAS编程的基本语法
一、SAS程序的书写格式
1、SAS程序由语句组成,语句用分号结束;
2、 SAS语句可以从某一行的任意位置开始;3、几个SAS语句可以写在同一行上,但每句要使用分号;
二、SAS程序的书写格式
1、SAS程序由语句组成,语句用分号结束;
2、 SAS语句可以从某一行的任意位置开始;
3、几个SAS语句可以写在同一行上,但每句要使用分号;
4、一个语句也可以写成几行,只要语句中的单词不被断开就可以。在一个语句中各个单词之间至少要有一个空格;
5、SAS程序中一般不区分大小写(字符串中要区分大小写);
6、用 /*注释的内容*/ 来对程序进行注释;
三、SAS程序的结构
1、SAS数据集 样本(观测、记录)、变量(字段、域)、表(数据集)、 数据库;
4、变量属性(名称、类型、长度、输入格式、输出格式、标签)
类型:数字型、字符串型 输入
格式:数据被SAS读取的格式
输出格式:数据呈现给人们的格式
data oranges;
input variety $ flavor texture looks;
/*total=flavor+texture+looks;*/
total=flavor+texture+looks;
label total="总数";
cards;
navel 9 8 6
temple 7 7 7
valencia 8 9 9
mandarin 5 7 8
;
proc sort data=oranges;
by descending total;
run;
proc print data=oranges;
var _numeric_;
/* var _character_;*/
title '对ORANGES数据集的品尝检验结果';
run;<span style="font-size:24px;">
</span>
四、SAS文件及命名
/*libname zhao clear;
libname _all_ clear;
libname zhao ('e:\data\' 'e:\');
libname zhao v6 'e:\data'*/
libname zhao 'e:\sastemp';
data zhao.aa;
input a ;
cards;
1
;
run;
第五讲、建立SAS数据集的5种方法
1、data步自己输入数据建立。Orange例
2、data步利用set 语句建立。Set例
3、从外部调入。Infile例
4、利用“导入数据”功能建立。Id.xls例、data.txt例
5、利用EFI(external file interface)功能导入。Column.dat例、tests.dat例、comma.dat例
第六讲、Analyst分析家模块
1、界面介绍
2、浏览与编辑模式
3、生成示例数据与抽样
4、程序清单
5、假设检验
第七讲、数据步(DATA 步)语法详解(1)
一、SAS运算符(operator例)
算术运算符: + - * / **
比较算符: =(EQ) ^=(NE) >(GT) <(LT) >=(GE) <=(LE) in
逻辑算符: &(AND) |(!)(OR) ^(~)(Not)
其它:><(最小值) < >(最大值) ||(!)(连接)
data oranges;
input variety $ flavor texture looks;
total=flavor+texture+looks;
if variety in ('navel','valencia') /* in应用 */
then total=total*10;
if (flavor<texture & variety='mandarin') /* & 符号 */
then total=total*100;
a=flavor<>texture**2; /*取小的一个*/
b=variety||'.var'; /*连接*/
label total="总数"; /*显示标签 默认为total*/
cards;
navel 9 8 6
temple 7 7 7
Valencia 8 9 9
mandarin 5 7 8
;
proc sort data=oranges;
by descending total;
run;
proc print data=oranges;
var _numeric_;
/* var _character_;*/
title '对ORANGES数据集的品尝检验结果';
run;
二、SAS程序的结构
1、按机器使用的字符排列次序(ASCⅡ或Unicode)从左到右被比较。2、两个不等长的字符串被比较时,系统在较短的字符串后自动添上空格
3、在比较符后加冒号,则只比较首字母
三、运算次序
在括弧里的表达式先计算第一级:** (+ -)前缀 ^ >< < >
第二级:* /
第三级:+ -
第四级:||
第五级:其余比较算符
第六级:&
第七级:|
1.对最高优先级,右边的运算先做
2.当两个比较算符围着一个量时,这个表达式看成是有一个and 出现一样被计算。 如:12<age< 20, 等价于:12<age & age<20
四、SAS函数
1、数学函数:2、截取函数:
3、字符函数:
SAS存贮时间值为从午夜开始到指定时间的秒数
日期时间值存贮为1960年1月1日午夜到指定日期时间之间的秒数
日期时间函数:weekday ( )、day()、month()、qtr()、year()
4、概率统计函数: probnorm (x) n (of X1-Xn)、nmiss (of X1-Xn), var (of x1-xn)、std (of x1-xn)
5、随机数函数: rannor (seed)、ranuni (seed)
Functions例
data bbb;
input x1-x5 x6 $ date yymmdd15.;
/*format date yymmdd10.;*/
*format date weekdate12.;
x7='o';
x8='I am a student';
/*以下是数学函数*/
a1=max(x1,x2);
a2=sum(x1,x2);
a3=sign(x3);
a4=sqrt(x5);
a5=mean(x1,x2);
/*以下是截取函数*/
b1=floor(a5);
/*以下是字符函数*/
c1=index(x6,x7);
c2=substr(x6,3,3);
c3=scan(x8,2);
c4=upcase(x8);
c5=compress(x6,x7);
/*以下是时间函数*/
d1=weekday(date);
d2=year(date);
d3=qtr(date);
d4=day(date);
/*以下是概率函数*/
e1=probnorm(0);
e2=n(of x1-x5);
e3=nmiss(of x1-x5);
e4=var(x1,x2);
e5=std(x1,x2);
/*以下是随机数函数*/
f1=ranuni(1);
cards;
1 2 3 5 -6 amazon 2004/9/22
3 5 0 8 0 box 1960/1/2
9 10 -7 9 4 check 1960/1/1
7 6 . 1 8 delete 1959/12/31
-2.5 -2.3 3 1 2 desk 2005/9/29
;
run;
proc print;
run;
第七讲、数据步(DATA 步)语法详解(2)
文件操作语句
运行语句
控制语句
信息语句
一、DATA步流程
1、DATA语句标志了数据步开始,并指定了数据步结束时要生成的数据集名字。2、每次读入一行数据,读入后执行数据步中的其它语句,循环数据步读取整个数据。
3、_N_变量表示DATA步已经执行的次数
4、_error_变量值为1时表示程序出错
Flow例
data flow;
/*put x= y= z= _n_;*/
input x y;
z=x+y;
put x= y= z=;
put _n_= _error_=;
cards;
10 20
100 200
1000 2000
;
run;
5、读外部数据时,数据步迭代(即每一次)的开始把变量的值置为缺失值,有几种情况例外:
6、读sas数据集时,只在第一次迭代时把变量值置为缺失,以后变量保留其值直至新值写入
data flow1;
put x= y= z=;
set flow;
put x= y= z=;
run;