当前位置:文档之家› SAS程序设计入门

SAS程序设计入门


SQL过程
• SQL过程可以对SAS系统的数据集、视图、以及关系 数据库中的表进行操作处理,并以数据形式输出。 • SQL过程语法: proc sql [选项]; 数据操纵语句; quit;
SQL过程
• 例子 • data; proc sql; select x1, x263 from Testlib.Creditscore where x321>20; quit;
SQL过程
• SAS统计分析标准教程(附光盘1张) 杜强, 贾丽艳 人民邮电出版社
• SAS应用统计分析(第5版) 罗纳德.科迪 人民邮电出版社
Thank You!
Zhao Xi zhaoxi19850210@
• 官方在线文档 /documentation/ind ex.html • 在集成开发环境中的‚帮助->SAS帮助和文档‛ • 民间SAS的论坛 人大经济论坛-计量经济与统计-SAS专版 /forum-68-1.html SAS高手的博客 /
变量
• SAS为弱类型语言,声明变量时无需指定变量类型, 直接对其赋值即可。 • 例如: x = 134; y = -1.375; z = 2.35E-5; i = “Hello SAS”; j = 3>2 (j值为1) k= “ABC” > “ABD”(k值为0)
算数运算符
• 算数运算符:+(加)、- (减) 、* (乘) 、 /(除)、** (乘方)等. • 例如: x = 1 + 2*3; y= -10; z= 2E-5; m = 2 ** 3;
文档
文档
文档
文档
• 查找某个SAS内置函数的用法时候,可以在‘SAS 帮助和文档’中,的‘索引’标签栏中输入 proc 函数名称,如:proc means
SAS启动界面
SAS主要窗口 • PROGRAME EDITOR窗口 • LOG窗口 • OUTPUT窗口
PROGRAME EDITOR窗口 • 具有全屏幕文本编辑功能,可以输入和编 辑文本,包括SAS语言编写和SAS程序; 提交SAS语句;拷贝一个外部文件到 PROGRAME EDITOR窗口,或拷贝 PROGRAME EDITOR窗口内容到外部文 件上;拷贝一个目录条到PROGRAME EDITOR窗口,或拷贝PROGRAME EDITOR窗口内容到一个目录条目。
SAS数据集
• 临时集:存放在Work中的数据文件集合,关闭 SAS时会自动清除。 • 永久集:存放在永久库中的数据文件。
SAS数据库与数据集
• 数据集的调用:每个数据集除自身的名称意外, 还要包括其所在数据库的名称,其一般形式为: 数据库名.数据集名,如,TestLib.testSet1 • 数据库和数据集的区别与联系: • 每个数据库对应一个文件夹 • 每个数据集对应一个扩展名为.sas7bdat文件
LOG窗口 • 包含SAS日志,是当前提交运行的SAS程 序执行过程的记录。一个典型的记录显示 有:在当前提交执行的SAS语句;执行 SAS语句过程有关的注释、警告和出错信 息;DATA步执行的一些结果和一些SAS 过程的结果。
OUTPUT窗口 • 是SAS运行结果的显示窗口,将SAS过程 运行后,相继产生的结果追加到该窗口的 内容中。缺省时,OUTPUT窗口是打开的 ,而且当某个过程产生输出时自动地出现 。为了打开OUTPUT窗口,规定:listing on。
SAS常用函数
• • • • • • • • MEANS 计算基本统计量 PRINT 数据输出 SORT 数据排序 UNIVARATE Tabulate制作表格 ANOVA 方差分析 CORR 相关系数的计算 REG 回归
SAS常用函数
• Proc Means [选项] [统计量] [by [descending] 变量1 …] [class 变量] [freq 变量] [id 变量] [output [out=数据集名] [输出统计量] [types 组合形式需求]; [var 变量]; [ways 组合方式];
SAS常用函数
• 例子: data; proc means data=Testlib.Creditscore sum qrange sum mean n std cv; var x263; run;
SQL Select语句
• Select语句语法 • SELECT [DISTINCT] *| expression [AS output_name ] FROM from_item [, ...] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ ORDER BY expression [ ASC | DESC ] ]
循环语句
• Do while (条件表达式); … End; • 例如: do while (currentValue <= endValue ); sum = sum + currentValue; currentValue = currentValue + 1; end;
程序结构
• 1.DATA步(数据步) • 进行数据的管理和操作,主要包括:建立SAS 数据集,导入外部数据,分割、合并、修改、 更新现有数据集,计算或生成新变量等。
创建SAS数据库
• 单击按钮,选择库路径,输入库名称 • 选择 查看->SAS资源管理器 可查看当前的逻辑库
创建SAS数据库
导入SAS数据集
• 选择 文件->导入数据 • 选择导入文件格式,单击‘下一步’
导入SAS数据集
• • • • • • 选择将要导入的文件格式,支持excel,csv等格式 选择将要导入的文件,单击‘OK’ 选择将要导入的数据表名称,单击‘OK’(Excel) 选择将要导入到的目标数据库名称,单击‘OK’ 单击‘Finish’完成导入 所选数据库中将会新增导入后的数据集
比较运算符
• 比较运算符:=(等于)、^=(不等于)、> (大 于) 、< (小于) 、 >=(大于等于)、<= (小 于等于)、^= (不等于)等. • 例如: score >= 60; limit ^= 0; j = 3>2 (j值为1) k= “ABC” > “ABD”(k值为0)
逻辑运算符
导入SAS数据集
导入SAS数据集
导入SAS数据集
• 导入第一行为属性名称的excel文件 proc import datafile=‚C:\bank.xls‛ out=Testlib.bank_copy; sheet=‘aa’; run; • 导入第一行为属性名称的逗号分隔符的CSV文件 proc import datafile=‚C:\bank.csv‛ out=Testlib.bank_another; run;
程序结构
• 每一行程序以 ; 表示结束.
• Data步与Proc步之间用‚run;‛或者‚;‛隔开.
• 全局变量可放在Data步中,如绘制表格,图形的 数据,建立SAS数据Байду номын сангаас等.
SAS数据库
• 临时库:只有一个,名为Work,在每次启动SAS 时由系统自动生成。关闭SAS后该数据库中的数 据被自动清除。 • 永久库:可以有多个,用户可以自定义库名称。
SQL过程
• 例子: select * from Testlib.Creditscore select x263 as 账户余额 from Testlib.Creditscore where x1= 10086234 select * from Testlib.Creditscore where x321>20 select x204 , count(*) from Testlib.Creditscore group by x204;
SAS程序设计入门
Zhao Xi
Research Center of Fictitious Economy & Data Science,CAS
所用软件
• 查看SAS版本号方法,帮助->关于SAS系统. • 本文中的代码使用 SAS 9.1 TS Level 1 M3 版本的 SAS进行执行.
文档
• 逻辑运算符 &(逻辑与):两个条件均为真,值为1,否则为0 |(逻辑或):只要有一个条件为真,值为1,否则为0
• 例如: if x<y & y<z then put "x<y & y<z"; if x>y | y<z then put "x>y | y<z";
其它运算符
• • • • • ><: 取左右两边的最小值 <>:取左右两边的最大值 ||: 连接左右两边的字符串
变量
• 编程语言中的变量是指值可以改变的量,SAS中的变 量命名规范以字母(a,b,c….z,A,B…Z)或下划线”_” 开始,后面的字符可以是字母数字和下划线,字母不 区分大小写. • 不能使用系统中的关键字,如:DATA. • 不能使用系统保留名称,_all_,_N_,_ERROR_等. • 不能使用特殊字符,如:%、#、&、!等. • 正确示例:book, _Book, Book1, Book_1. • 错误示例:%book, 3Book, _book%1.
注释
• 与C++语言一样,SAS中的多行注释使用 /*…..*/ 的形式,如 /* 数据清理 */ • 良好的注释习惯有利于代码的重用和修改,每一 段程序开头建议使用注释描述一些程序信息。 /* 作者: 时间: 概要说明: 算法说明: ….. ….. */
关键字
常量
• 编程语言中的常量是指固定不变的量,SAS中的常 量包括以下三类: • 数值常量:1,1.5,-2.83,1.3E-5 字符常量:‘Hello World‟,”Hello”(对于初学者可 认为在表示单个字符串时单引号与双引号无区别) 日期时间,后接D,T,DT: „2011-01-15‟D „9:25:30‟T '1JAN2008:08:08:08'DT
相关主题