第3章SAS数据步与数据步语句

上传人:平*** 文档编号:13412659 上传时间:2017-10-23 格式:DOC 页数:25 大小:147.91KB
返回 下载 相关 举报
第3章SAS数据步与数据步语句_第1页
第1页 / 共25页
第3章SAS数据步与数据步语句_第2页
第2页 / 共25页
第3章SAS数据步与数据步语句_第3页
第3页 / 共25页
第3章SAS数据步与数据步语句_第4页
第4页 / 共25页
第3章SAS数据步与数据步语句_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第3章SAS数据步与数据步语句》由会员分享,可在线阅读,更多相关《第3章SAS数据步与数据步语句(25页珍藏版)》请在金锄头文库上搜索。

1、3-1第 3 章 数据步与数据步语句摘要:本章讲授数据步的基本概念,数据集的结构,学习数据步构成的有关语句功能及其用法。对本章内容的学习是进行数据处理的一个前提条件,为后面编程打下基础。3.1 SAS 数据步与数据集3.1.1 数据步数据步是产生数据集的一组语句,一个数据步可以建立一个或多个数据集,在一个 SAS 程序中可以有多个数据步。数据步程序还可以对已经建立的数据集进行修改和产生输出报告。一、数据步的基本任务 建立数据集:SAS 按照从数据步各语句中获得的信息建立数据集,该数据集存放输出的数据,故称输出数据集。DATA 语句是数据步开始的标志,且提供数据集名。格式如下:DATA 数据集名

2、; 输入数据:把外部数据读入内存,这步取决于外部数据的来源,可分为三种情况。 从数据步内读取数据(数据源在作业流中):用 INPUT 语句 与CARDS 语句 联合使用 从磁盘文件读取数据:用 INFILE 语句 与INPUT 语句 联合使用 从已有的数据集中读取数据:用 SET 语句 对数据进行加工:对数据进行加工处理的语句叫多,后面陆续介绍。在此仅介绍赋值语句。赋值语句格式:变量=算术表达式变量=字符串3-2赋值语句功能:先计算赋值号右边的表达式的值,然后将表达式的值赋给右边的变量。如:x=3+6 将组成的观察写入数据集:在完成数据加工后,将要保存的变量(及数据)组成一例观察值,写入数据集

3、。该操作用 OUTPUT 语句来完成。二、数据步程序的三种结构根据数据源的不同,数据步程序有如下三种基本结构: 从数据步内读取数据(数据源在作业流中):当数据源的数据作为程序的一部分出现在程序中时,数据步程序的格式如下:DATA 数据集名;INPUT 变量表;其它数据步语句;CARDS;数据块; 从磁盘文件读取数据(数据源是 ASCII 码文件):如果数据源是以 ASCII 码数据文件存储于磁盘上,SAS 可以读取该数据文件中的数据来建立数据集,则数据步具有的格式如下:DATA 数据集名;INFILE 数据文件名;INPUT 变量表;其它数据步语句;执行 INFILE 语句时,指定的数据文件被

4、打开,INPUT 语句从打开的数据文件中读取数据。 从已有的数据集中读取数据:(数据源是已经存在的数据集)利用已经建立的数据集中的数据来产生新的数据集,其数据步格式如下:DATA 数据集名;SET 或 MERGE 或 UPDATA 语句;其它数据步语句;三、数据步的程序的执行流程数据步的作用是把数据源中的数据作为输入,经过加工后输出到一个或多个“SAS 数据集” 。程序执行流程图如下:3-33.1.2 数据集SAS 数据集是一种具有特定专门格式的,且有 SAS 程序运行产生的,SAS 使用的一种数据文件(以二进制形式存放) 。它由数据步产生,作为过程步的输入。一、 数据集的结构数据集是一个数值

5、的集合,是一个数据值构成的矩形表(二维表) 。观测 变量 1 变量 2 变量 4 1 数据值 数据值 数据值 2 数据值 数据值 数据值 3 数据值 数据值 数据值 数据集中的数据是按行列结构存放:每一行代表调查的每一个个体的信息,称之为:观测值(Observations 样本、记录) ;每一列表示一个调查项目,称为变量(Variables) ;每一列上的数据值称为变量值(Data value) 。数据集的基本要素是变量和观测值。DATA 语句数据源中有未读取的数据吗?顺序执行数据步各条语句DATA 语句在执行数据步最后一条语句或遇到 OUTPUT 语句时,将当前观察值写入数据集。本数据步执行

6、结束。执行后继其它过程步或数据步。是否是3-4二、 数据集的类型SAS 数据集分为两种类型:临时数据集和永久数据集。SAS 数据集名称由两部分组成。两部分名称是以“”为分隔符连接而成的。其格式如下:一级名二级名 临时数据集当以“WORK” 作为一级名,或省略一级名仅使用二级名,则该数据集为临时数据集。这类数据集在 SAS 退出时回被系统自动删除。临时数据集创建方法有两种: 用户自定义:用户给定数据集名。如:“DATA student;” ,建立的数据集为 Work.student。 由系统自定义:由系统指定数据集名。如:“DATA ;”系统以 DATA1,DATA2 等命名。 永久数据集若想在

7、保存建立的数据集,则需要建立永久数据集。即一级名不能省略且不为“WORK”的数据集。 SAS 数据集名中不能使用真实路径,必须用 LIBNAME 语句给数据集指定一个别名(逻辑名) 。在 DATA 语句中,以逻辑名为一级名,就可以建立永久数据集。SAS 系统回自动为永久数据集文件加上“Sd2”扩展名。如:libname sjm C:sasSASWORK;data sjm.student;input xh$ xm$ yy gs;p=yy+gs;cards;001 aaa 89 91002 bbb 70 88003 ccc 90 92004 ddd 70 87005 eee 85 83proc p

8、rint;run;当程序执行后,在“C:sasSASWORK”文件夹中建立一个名为:“student.sd2”的永久数据集文件。3-53.2 SAS 数据步的基本语句SAS 数据步语句是数据步程序设计中经常用到的语句,对其功能与语法的掌握是程序设计的前提条件。一、 DATA 语句1 功能:DATA 语句是数据步开始标记,指定数据集名,为建立数据集作好准备。数据集名以英文字符开头,长度不超过 8 个字符。2 格式:DATA 数据集名 选项;3 说明: 在 DATA 语句中,数据集选项 可以有一个或多个,当有多个时表示一个数据步产生多个数据集。如:DATA A,B,C; 可建立临时数据集或永久数据

9、集; SAS 保留的专用的数据集名:_NULL_ 不产生数据集;_ DATA_ 以数据步被实行的先后为序,产生二级名为DATA1,DATA2,DATAn 的数据集。_LAST_ 相对与当前数据步,指上一个数据步产生的数据集。 若不指定数据集名,系统默认为数据集名为:_DATA_。4选项说明:通过选项的选择,给数据集指定一些特性。数据集名后可有多个选项,所有选项必须写在同一个圆括号中,不同的选项之间用空格隔开。常用的选项格式为:选项关键字=参数 DROP=变量表 将指定的变量不作为数据集变量,即对应数据不写入数据集。 KEEP=变量表 将指定的变量作为数据集变量,即对应数据写入数据集。 TYPE

10、=类型 指定建立特殊类型的数据集,常用的有: CORR 相关矩阵、协方差矩阵 COV、DISTANCE 距离矩阵。 RENAME=(旧变量=新变量 )用旧数据集产生新数据集时选用,在新数据集中指定新变量名替换旧数据集中的变量名。如:data student (drop p) ;二、 CARDS 语句与数据块1CARDS 语句:将原始数据直接写在程序中,这是 SAS 数据源的三种形式之一,其格式如下:CARDS;3-6多行用空格隔开的数据;其中 CARDS 语句是数据块的开始,它的功能是通知 SAS 从下一行开始读取数据。CARDS 语句写在数据步的最后部分。2数据块:数据块是为 INPUT 语

11、句提供数据的。可由多行构成,数据间用空格隔开,行数没有限制,每行不超过 80 列。一个数据步只能有一个数据块。3CARDS4 语句:因分号是作为数据块的结束标记,当数据行中需要 “;”作为数据出现时,需将 CARDS 换成 CARDS4 语句;同时用连续的四个“;”作为数据块的结束符。三、 INPUT 语句1 功能:INPUT 语句是从数据源(数据块或文件)中读取数据,并将数据赋给其后的变量。2 格式:INPUT 变量表;3 说明: INPUT 语句有四种格式:列表输入、列输入、格式化输入、指针控制输入。 “变量表”可以缩写(变量名相同且有序) 。如:INPUT X1 X2 X3 X4 X5;

12、缩写为:INPUT X1 - X5;4列表输入(自由格式):将变量简单的列在 INPUT 语句之后,变量间由一个或多个空格隔开。要求:INPUT 语句中列出的变量的顺序必须和输入数据一致。本格式使用最为简单。如:DATA student;input xh$ xm$ yy gs;p=yy+gs;CARDS;001 aaa 89 91002 bbb 70 88003 ccc 90 92004 ddd 70 87005 eee 85 83DATA student;input yy gs xh$ xm$;p=yy+gs;CARDS;89 91 001 aaa70 88 002 bbb90 92 003

13、 ccc70 87 004 ddd85 83 005 eee 通常数据源中每行数据的个数与 INPUT 语句中变量个数相等,若一行中数据多于变量个数,则多余数据被忽略;反之,一行中数据少于变量个数,未获得数据的变量将从下一行读取数据。比较以下两个例子:(见下页)3-7 缺失项必须用“.”表示。 变量与对应的数据类型不匹配时,变量值为缺值。DATA new;Input a b c;Cards;1 2 34 5 6DATA new;Input a b c;Cards;1 2 3 45 6 7DATA new;Input a b c;Cards;1 2 3 4 5 65列输入:在 INPUT 语句中

14、,指定每个变量值所在的列号。当变量的值在数据源中位于相同的列上时,用列输入比较方便。 格式:INPUT 变量 起始列-终止列;例如:INPUT xh$ 7-9 xm$ 11-13 yy 15-17 gs 19-21; 采用列输入时,变量顺序不必与输入数据一致。 要求变量的值在数据源中位于相同的列上。6格式化输入:在 INPUT 语句中给出变量的数据类型和长度的这样一种数据读如格式。 格式:INPUT 变量 格式;格式:W.d例如:INPUT xh$. yy5.3;aaa 3.123 适于日期型数据的输入(参见 P21)例如:INPUT xh$ 7-9 xm$ 11-13 yy 15-17 gs

15、 19-21;7. 指针控制读入数据:SAS 中指针有“” 、 “#”、 “/”、 “+”、 “-”等控制符。 行保持说明符(续行符) “”:保持数据指针在当前行上,直到读完所有数据;数据指针才移到下一行。如:在 INPUT语句末尾使用符号,其作用是:保持数据指针在当前行上,下一个INPUT语句接着从本行读入数据,直到数据步结束,数据指针才移到下一行。如: DATA new;Input a b;Input c;Cards;1 2 3 44 5 6 7proc print;run; DATA new;Input a b ;Input c;Cards;1 2 3 44 5 6 7proc prin

16、t;run;3-8:在 INPUT 语句末尾使用连续 符号,其作用是:保持数据指针在当前行上,直到读完所有数据;数据指针才移到下一行。如:DATA new;Input a b ;Cards;1 23 45 6DATA new;Input a b ;Cards;1 2 35 6 7DATA new;Input a b c ;Cards;1 2 3 4 5 6其运行结果是相同的。: 后跟一个数值 n,其作用是:将数据指针移到 n 列。如:INPUT 4age。 和控制符:利用“”和“”可以控制数据指针向前或向后移动指定的列数。 #和/控制符:对数据指针的控制。 (见 P22)#:后跟一个数值 n,表示将数据指针移到指定的行读取数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号