《《SAS编程入门》课件》由会员分享,可在线阅读,更多相关《《SAS编程入门》课件(65页珍藏版)》请在金锄头文库上搜索。
1、单击此处编辑母版标题样式 单击此处编辑母版副标题样式 1 第2章 SAS编程入门 学习目标 v掌握SAS语言构成 学会运用SAS语言进行编程 v掌握DATA数据步以及通过DATA步建立数据集的方 法 v了解各种PROC过程步的作用 v熟悉各种SAS函数并逐渐学会其在SAS程序中的作 用 v掌握数据集的各种编辑操作方法 包括建立与保存 导入和导出 连接等 v掌握一些常用的SAS语句并在SAS程序中熟练运用 SAS语言构成 vSAS提供了一种完善的编程语言 类似于计 算机的高级语言 SAS用户只需要熟悉其命 令 语句及简单的语法规则就可以做数据管 理和分析处理工作 因此 掌握SAS编程技 术是学习
2、SAS的关键环节 在SAS中 把大 部分常用的复杂数据计算的算法作为标准过 程调用 用户仅需要指出过程名及其必要的 参数 这一特点使得SAS编程十分简单 SAS语句 v一个SAS语句是由SAS关键词 SAS名字 特殊字符串 并以分号 结尾 它要求 SAS系统执行一种操作或给SAS系统提供信 息 如 vData grade vDo i 1 to n vInput X Y 10 SAS语句 vSAS关键词 许多SAS语句都是以关键词开始并用 它识别语句的类型 如DATA INPUT PROC和 INFILE都被称为关键词 vSAS名字 SAS语句中出现名字地方很多 如变量 名 数据集名 格式名 过
3、程名 及作为文件名和 库标记的特殊名字 SAS名字最多可由8个英文字 母构成 第一个字符不能是数字 空格和特殊字符 和 也不能用于SAS的名字中 另外 保留了一些特殊的变量名并赋于特定的意义 这些 变量都是以下划线开头和结尾 如 表示数据步 已执行过的次数 SAS表达式 v表达式是由一系列算符和运算对象形成的一个指令 它被 执行后产生一个目标值 运算对象是变量和常数 表达式 分为简单表达式 仅用一个算符 和复合表达式 使用多 个算符 如 9 Age 1001 LOG X EXP a a b 100等 SAS常数用来表示固定的值 它或者是一 个数字 或者是固定的值 或者是字符串 或者是其它特 殊
4、记号 SAS有五种类型的常数 数值常数 就是出现 在SAS语句里的数字 完全像通常的数值一样书写 可以 包括小数点和负号等 字符常数 是由单引号括起来的 1到200个字符组成的 日期和时间数值常数 十六进 制数值常数 十六进制字符常数 SAS算符 v比较算符 建立两个量之间的一种关系 并 要求SAS确定这种关系是成立不成立 如果 它成立 输出的运算结果是1 如果不成立 运算结果为0 v算术算符 就是数学运算中常用的五种运算 符号 v逻辑算符 通常用来连接一系列比较式 SAS算符 v运算次序 下面给出复杂表达式运算次序的 准则 v 在括号里的表达式先计算 v 较高优先级的运算先被执行 v 对于相
5、同优先级的算符 左边的运算先做 SAS程序 v由一系列SAS语句组成一个SAS程序 SAS 程序中的语句可分为两类步骤 DATA步和 PROC步 这两个步骤是所有SAS程序的模 块 通常用DATA步产生SAS数据集 而用 PROC步对SAS数据集内的数据进行分析处 理并输出结果 PROC步要求SAS从过程中 调出一个过程并执行这个过程 通常用SAS 数据集作为输入 SAS程序示例 vdata whb phones input name phone room height cards rebeccah 424 112 1 5648 carol 450 112 5 6235 louise 409
6、110 1 2568 gina 474 110 1 3652 mimi 410 106 1 6542 alice 411 106 1 6985 brenda 414 106 1 3698 brenda 414 105 1 8975 david 438 141 1 6547 betty 464 141 1 5647 holly 466 140 1 5624 proc print data phones run DATA步入门 vSAS的数据步以DATA语句开始 用于创建和处理 数据集 DATA语句以关键字 data 开始 格式如下 vdata 数据集名 v例如 data a case 将创建在库
7、a中名为case的 SAS数据集 语句执行后你可在与库a对应的目录 下看到刚刚建立的数据集文件case vDATA语句所指定的数据集 一般都是以 库名 数据 集名 的格式出现的 也可以单独的 数据集名 出现 此时的数据集系统默认为是临时库中的数据集 退出系统后将会被删除 DATA步入门 v直接输入方式 就是用SAS语句输入数据来 产生SAS数据集的过程 一般形式为 v DATA 语句 v Input 语句 v 用于DATA步的其它语句 v Cards v 数据行 v DATA步入门 v从外部文件读入数据集 数据若已经包含在某个 外部文件 文本文件或数据文件 中 可用此方 法输入数据到数据集文件
8、中 在以上介绍的data 语句后 写入以下语句 vinfile 外部文件的所在位置及名称 选项 vinput 变量名1变量名2 变量名n vinfile语句用于从外部文件读入数据 必须出现在 input语句之前 它的功能是指定一个包含原始数 据的外部文件 DATA步入门 v从已建立的SAS数据集中产生新的数据集 如果用户从已经建立的SAS数据集中抽取部 份变量或数据来形成新的SAS数据子集 可 在DATA步中通过SET命令来完成 DATA步语句及其类型 v文件操作语句 v运行语句 v控制语句 v信息语句 文件操作语句 v用于输入数据集或者从这个DATA步输出 文件操作语句语句的作用及意义 Da
9、ta告诉SAS开始DATA步 并开始创建一个SAS数据集 Input描述数据行或外部输入文件上的记录 Cards标识数据行的开始 Put描述用SAS输出的这些行的格式 By规定数据集被分组处理 使用by变量对分组进行定义 Set从一个或几个已存在的SAS数据集中读观测 Merge从两个或两个以上的SAS数据集中合并观测为单 个观 测 Inflie识别外部文件 包含DATA步将读入的原始输入数据 运行语句 v使得用户可以创建或修改变量 或者选择一部分观测来创 建数据集 文件运行语句语句的作用及意义 Delete从正被创建的数据集中删除观测 Stop停止产生当前的数据集 Where在进入Data步
10、之前选择观测 Output产生新的观测 Remove从某个SAS数据集中删除一个观测 Replace在相同的位置上替代观测 控制语句 v对一些确定的观测跳过一些语句 或者改变被执行 语句的次序 实现从程序的一部分转移控制到另一 部分 文件控制语 句 语句的作用及意义 Do建立一组语 句 它能够作为一个语句去执行 End标记 一个DO组或Select组结 束 Select有条件地执行几个SAS语句中的一个 Go to使得SAS跳到本程序步带有标号的语句 并从这 里继续执 行 If then else有条件地执行一个SAS语句 信息语句 v给出关于数据集或正被创建的数据集的附加信息 不是执行 语句
11、 可以出现在DATA步的任何地方 并且有同样的功能 文件信息语句语句的作用及意义 Array定义一组能够用相同方法处理的变量 Informat对存储变 量值规 定输入格式 Format对输 出变量值规 定格式 Length规定用来存储SAS变量的字节数 Label把描述性标签 同变量联系起来 Drop指出从数据集或分析中被删除的变量 Keep指出在数据集或分析中被保留的变量 Rename改变数据集中一些变量的名字 PROC过程步 vPROC步总是由PROC语句开始 然后给出 运行的SAS过程名字 例如 运行SORT过 程 则使用语句 proc sort 来开始这个PROC 步 通常PROC步只
12、需要包括一个PROC语 句给出运行的过程名字和一个RUN语句 SAS过程名及其功用 vMEANS 计算基本统计量 vCHART 制作次数分布表 次数分布图 vUNIVARIATE PLOT 正态分布检验 vPRINT 数 据 输 出 vSORT 数 据 排 序 vTabulate 制作表格 vANOVA 方差分析 vGLM 协方差分析 vCORR 相关系数的计算 vREG 直 线 回 归 vPRINCOMP 主 成 分 分 析 SAS常用函数及其应用 vSAS函数是一个子程序 它由0个或几个自变 量返回一个结果值 每个SAS函数都有一个 关键名字 为了引用函数 要写出它的名字 然后写出一个自变
13、量或几个自变量 它们 用括号括起来 这个函数对这些自变量执行 某种运算 SAS常用函数及其应用 vSAS函数分为十七种类型 它们是算术函数 数组函数 截取函数 数学函数 三角函 数 双曲函数 概率函数 分位数函数 非 中心函数 样本统计函数 随机数函数 财 政金融函数 逐位逻辑操作函数 数字函数 字符函数 日期和时间函数 州和邮政编 码换算函数和特殊函数 SAS系统提供的 SAS函数 对用户编写SAS程序带来极大的 方面 为统计分析计算提供更大的方面 SAS数据集 vSAS数据集是关系型结构 分为两个部份 描述部份和数据部份 v描述部份包含了一些关于数据属性的信息即 变量名称 类型及次序等信息
14、 数据部份的 结构完全等同于我们一般所理解的数据表 SAS数据值被安排在一个矩阵式的表状结构 中 由字段和记录所构成 字段就是统计学 中研究的变量 而记录就是每个研究对象的 观测 SAS数据集 vSAS数据集又包含在SAS数据库的文件集中 SAS数据集是 最常用的一种SAS文件类型 SAS数据库还可以包含其它类 型的SAS文件 vSAS中数据库分为永久性和临时性两种 存在于永久库中的 数据集是永久存在的 只要你不去删除它 临时库中的数 据集则在你退出SAS后自动被删除 v在Windows操作系统 SAS数据库以路径为基础的组织方式 为了使用SAS数据库 需要为每个SAS数据库指定一个库 标记来
15、识别 这一标记又称库逻辑名 是某个文件所在路径 的别名 临时数据库的库标记为WORK 在SAS启动后自动 生成 结束SAS后 库中的所有文件都被删除 临时SAS数据集的建立 v当启动SAS后 系统自动建立一个临时数据 存储区 用来临时存储运行SAS时建立或调 用的SAS数据集 临时数据库的库标记为 WORK 在SAS启动后自动生成 结束SAS 后 库中的所有文件都被删除 临时数据库 的库标记不需要标注 即SAS程序中数据集 work abc与abc的表示含义完全相同 永久型SAS数据集的建立和保存 vSAS启动后自动生成临时数据库的库标记 因而不需要专门进行命名 但当退出系统后 临时数据库中的
16、数据集会被自动清除 为了 能反复多次使用同一数据集 需建立永久型 SAS数据集 实际上 建立永久型SAS数据 集 就是将SAS数据集储存在数据库逻辑名 对应的路径目录下 数据集的导入 v除了通过数据步创建数据集的方法 SAS还提供了 一些其他的方式可以用来读入其他格式的数据文件 SAS可以利用 FILE 菜单上的 Import Data 命令将其他格式的数据文件导入SAS系统 创建 SAS自己的数据集 可以导入的数据文件格式有 dBase数据库 EXCEL工作表 LOTUS的数据库 纯文本的数据文件等 v导入的操作完全是对话式的 界面友好 简便实用 以下简单叙述导入的步骤 数据集的导出 v除了导入其它格式的数据文件 SAS系统也可以导 出SAS数据集为其它格式的数据文件 SAS可以利 用 FILE 菜单上的 Export Data 命令将SAS 数据集导出SAS系统 转换为其它格式的数据文件 同样地 可以导出的数据文件格式有 dBase数 据库 EXCEL工作表 LOTUS的数据库 纯文本 的数据文件等 v数据的导出和导入完全是相反的两个过程 同样地 导出数据的菜单操作也完全是对话式的