SAS第二讲:编程创建SAS数据集
- 格式:ppt
- 大小:691.00 KB
- 文档页数:19
SAS 编程及应用------SAS数据集的建立SAS数据格式v 观测(Observation)1.描述被观测对象的单一整体(如个别人、一个实验动物等)某些特性的一系列数据值称为一个观测,又称为观察。
在SAS数据集中每一行数据是一个观测。
v 等同于数据库中的一条记录v 变量(Variable)1.变量指定了数据的某一特性。
在SAS数据集中,每一个观测是由各个变量的数据值组成。
在数据集中每一列数据是一个变量。
v 变量的命名1.最多32个字符长,第一个字符必须是字母或者下划线,不能有空格。
特殊字符(如$,@,#)也不允许在SAS名中使用。
合法变量名如:A A1 abc name age total …;2.SAS系统保留的特殊变量名,以下划线开始和结尾。
如:_N_和_ERROR_等。
v 变量的特性1.名称、类型、长度、输入格式、输出格式和变量描述;2.两种类型:数值型和字符型;3.长度特性:是指存贮的字节数。
缺省长度是8(为了存贮长度与缺省值不同的变量,需使用LENGTH语句)。
v 缺失值1.当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误,或由于计算错误),称该值为缺失值;2.在SAS中数值类型的缺失值用“.”表示;3.字符类型的缺失值为“”(空格)表示。
v 常量1.SAS常量为值固定不变的量;2.常量分为以下三类;•数值常量:1.5 -2.79 1.75E-5;•字符常量:“Hello”‘ABC’“Zhangli”;•日期、时间、日期时间常量:后接D,T,DT。
‘1JAN2000’D‘9:25:19’T‘1JAN2000:10:30:05’DTv SAS数据集1.SAS数据集是SAS过程的数据基础。
可以从外部数据读进来,转变成SAS数据,也可以自己输入产生;2.可以是临时的,或永久的;3.数据集含两部分内容:• 描述部分:数据名称、类型、长度、格式等• 数据部分:包含实际数据值4.SAS数据值被安排在一个矩阵式的表状结构中。
第4章用编程读入数据建立sas数据集§4.1 sas编程基本概念§4.1 概述sas语言程序由数据步和过程步组成。
sas语言的基本单位是语句,每个sas语句一般由一个关键字(如data,proc,input,cards,by)开头,包含sas名字、特殊字符、运算符等,以分号结束。
sas关键字是用于sas语句开头的特殊单词,sas语句除了赋值、累加、注释、空语句以外都以关键字开头。
sas名字在sas程序中标识各种sas成分,如变量、数据集、数据库,等等。
数据步和过程步数据步用来生成数据集(从数据片中或外部数据文件中读取数据)、计算整理数据等。
语法:data 数据集名;.....;run;过程步:面向SAS数据集,完成某个特定的计算、分析和呈现功能语法:proc 过程名;......;run;sas程序的书写规则sas程序是由一至多个数据步骤(data step)和过程步(Procedure Step)互相交叉组合而形成。
根据各个数据步骤的属性或过程步的功能,来实现sas 数据文件的建立、进行统计分析等。
sas系统的编译方式是以数据步或过程步为一个区块来编译的,语法编译无误便开始执行该数据步或过程步,执行完整一个数据步或过程步区块后便继续处理下一个数据步或过程步。
一个区块接一个区块地将所有程序代码编译及执行完后,便完成了该程序的执行。
sas程序代码提交出去,便已将程序交由sas系统去完成。
用户必须确定sas系统在log窗口中是否有显示错误的程序代码,分析数据的属性是否正确。
sas的程序代码是自由格式的程序代码,每个语句由关键词开始,以“;”作为一个程序语法的结束;一行可以含多个程序语句;一个程序语句也可以分成多行,但必须以空格(只要有一个空格的地方,就可用任意多个空格来替代)为分隔。
注:在命令框中键入num即可显示或取消行数。
指定逻辑库名与逻辑文件名指定逻辑库名在sas系统中只有sas数据集才能被sas过程直接调用,sas数据集的结构和dbf数据库完全相同。
05. 数据步创建数据集的过程数据步创建数据集的过程分为两个阶段:1. 编译阶段:扫描语法错误,生成数据集的“描述信息”;2. 执行阶段:逐条记录地读入并处理输入数据(循环执行若干次数据步)。
(一)编译阶段将数据从外部文件读入“程序数据向量”(Program Data Vector)。
一、在输入缓冲区(内存)创建“程序数据向量”注意:是读入外部数据时创建,而不是读入SAS数据集时创建。
例1下面的数据步代码:infile'D:\我的文档\My SAS Files\9.3\invent.dat';input Item $ 1-13 IDnum $ 15-19 InStock 21-22 BackOrd 24-25;Total=instock+backord;run;将创建如下的“程序数据向量”:包括_N_:记录数据步执行的次数,读入一条记录则+1;_ERROR_:用来指示错误,默认是0,遇到错误则变为1;注意:_N_和_ERROR_是该处理过程自动生成的,将来也不会出现在数据集的观测值中。
Item、IDnum、InStock、BackOrd:数据集自身的变量,其变量属性(长度、类型等)在第一次读到数据时确定;Total:数据步中赋值语句生成的变量。
二、检查语法错误(1)关键词缺少或拼写错误;(2)无效的变量名;(3)标点符号缺失或拼写错误;(4)无效的可选参数。
三、生成数据集的“描述信息”遇到数据步的run;语句时生成,包括:(1)数据集的名称;(2)数据集包含变量的个数;(3)数据集各变量的变量名和属性。
注意:此时,“程序数据向量”中还没有内容,数据集中也还没有观测值,观测值将在执行阶段从“程序数据向量”中逐条读取。
(二)执行阶段逐条记录地从“程序数据向量”读入并处理输入数据(循环执行若干次数据步)。
例如,例1中的invent.dat文件共有9条记录:数据步读入它将循环执行9次。
执行阶段具体步骤:第1次循环:一、初始化“程序数据向量”_N_ = 1_ERROR_ = 0其它变量 = 缺省值(数值型是 . 字符型是空格)二、执行input语句前例中,代码依次将外部数据文件的第一行的1-13列读入数据存入Item变量,……,赋值语句将instock和backord值相加赋给Total.三、数据步收尾工作1. 将当前“程序数据向量”中的条目,作为第1条观测值写入输出数据集。
第六课建立SAS系统的数据集(ASSIST)得到SAS数据集的五种途径●用SAS/ASSIST 通用菜单系统创建数据集●用SAS/FSP系统的FSEDIT过程创建数据集●用SAS数据步(DATA STEP)将外部文件转换为数据集●用SAS/ACCESS系统访问其他数据库●用FILE/IMPORT或EXPORT输入输出数据库其中,如何使用SAS数据步读入外部原始数据文件,并将它们转换为SAS数据集是我们要重点掌握的。
一、用ASSIST通用菜单援助系统创建数据集下面我们通过创建一个SURVEY数据集,并用报表形式显示的例子,来说明SAS/ASSIST 软件的具体的操作步骤。
1.启动SAS/ASSIST软件最简单的方法是单击工具拦上的SAS/ASSIST按钮,或选择菜单命令:●Globals/SAS/ASSIST或在左上角的命令框直接键入Assist并按Enter键,都可启动SAS/ASSIST软件,主菜单如图6.1所示。
共有11个子系统:TUTORIALDA TA MGMT (DA TA Management)REPORT WRITINGGRAPHICSDATA ANAL YSISPLANNING TOOLSEISREMOTE CONNECTRESULTSSETUPINDEX图6.1 SAS/ASSIST软件的主菜单2.选择主菜单中的DATA MGMT(数据管理)项选择主菜单上的DATA MGMT(数据管理)子菜单,如图6.2所示。
图6.2 数据管理的主菜单3.选择CREATE/IMPORT(创建数据集或输入数据)的方法选择CREATE/IMPORT菜单后,提供几种创建数据集的方法供用户选择,如图6.3所示。
假设我们:(1)选择用交互式方法录入数据:Enter data interactively….图6.3 创建和输入菜单(2)选择第二种以表格的形式输入记录的方式图6.4 选择以表格的形式输入记录的方式如图6.4所示,又提供了两种输入观测的方法供用户选择:Enter data one record at a time (一次输入一条记录的方式)和Enter data in tabular form(以表格的形式输入)。