SAS数据集的建立
- 格式:ppt
- 大小:2.26 MB
- 文档页数:45
第十课建立SAS系统的数据集(FILE/IMPORT或EXPORT)用SAS/ACCESS访问外部数据库,只是建立了SAS系统访问外部数据库的访问通道,外部数据库并没有真正转换成SAS数据集,也没有新增一个外部数据库文件大小的存储空间,仅仅是创建了.ACCESS和.VIEW文件,且占用了很少的存储空间,例如我们将外部数据库文件移去,SAS系统中对应的那个*.VIEW就不能显示了。
而我们使用FILE/IMPORT或EXPORT 方法是真正地输入或输出了一个数据库文件,要新增一个与原外部文件大小相当的SAS数据集,且这个数据库文件格式也转换成SAS数据库文件格式。
我们这里主要介绍Excel的*.XLS数据库文件与SAS数据集的转换。
一、Excel的XLS文件输入变成SAS的DATA文件Mircrosoft Office套装软件中一员Excel,是一个功能强大的管理和决策工具软件,被大多数用户熟悉和常用。
虽然Excel中也为用户提供了大量的统计函数和可调入的统计宏模块程序,但遇到需要大数据量的、多种类型的、复杂的大型统计分析,Excel就会显得力不从心。
常常采用将Excel中原始分析数据转入到SAS系统,借助SAS系统的强大的专业的统计分析能力进行分析处理,能使用Excel所不具备的统计模块,能生成独有的专业统计报表和图形。
例如我们有一个上证综合指数的Excel文件,文件名为1a0001w.xls,存放的目录为d:\sasdata\mydir,存放内容是从1990年12月21日开市到2000年1月07日的周K线指数数据,如图10.1所示。
图10.1 上证周K线数据的XLS文件将上述的1a0001w.xls文件输入到SAS系统,创建一个名为XLSSAS.DATA的SAS数据集,操作步骤如下:1.选择File/Import命令,进入选择输入文件类型窗口,在下拉菜单中选择Excel如图10.2所示。
鼠标单击输入框右边的向下箭头,弹出下拉菜单,选择Excel 5 or 7 Spreadsheet (*.xls)选项,然后单击Next按钮,进入下一个菜单窗口。
第十课建立SAS系统的数据集(FILE/IMPORT或EXPORT)用SAS/ACCESS访问外部数据库,只是建立了SAS系统访问外部数据库的访问通道,外部数据库并没有真正转换成SAS数据集,也没有新增一个外部数据库文件大小的存储空间,仅仅是创建了.ACCESS和.VIEW文件,且占用了很少的存储空间,例如我们将外部数据库文件移去,SAS系统中对应的那个*.VIEW就不能显示了。
而我们使用FILE/IMPORT或EXPORT 方法是真正地输入或输出了一个数据库文件,要新增一个与原外部文件大小相当的SAS数据集,且这个数据库文件格式也转换成SAS数据库文件格式。
我们这里主要介绍Excel的*.XLS数据库文件与SAS数据集的转换。
一、Excel的XLS文件输入变成SAS的DATA文件Mircrosoft Office套装软件中一员Excel,是一个功能强大的管理和决策工具软件,被大多数用户熟悉和常用。
虽然Excel中也为用户提供了大量的统计函数和可调入的统计宏模块程序,但遇到需要大数据量的、多种类型的、复杂的大型统计分析,Excel就会显得力不从心。
常常采用将Excel中原始分析数据转入到SAS系统,借助SAS系统的强大的专业的统计分析能力进行分析处理,能使用Excel所不具备的统计模块,能生成独有的专业统计报表和图形。
例如我们有一个上证综合指数的Excel文件,文件名为1a0001w.xls,存放的目录为d:\sasdata\mydir,存放内容是从1990年12月21日开市到2000年1月07日的周K线指数数据,如图10.1所示。
图10.1 上证周K线数据的XLS文件将上述的1a0001w.xls文件输入到SAS系统,创建一个名为XLSSAS.DATA的SAS数据集,操作步骤如下:1.选择File/Import命令,进入选择输入文件类型窗口,在下拉菜单中选择Excel如图10.2所示。
鼠标单击输入框右边的向下箭头,弹出下拉菜单,选择Excel 5 or 7 Spreadsheet (*.xls)选项,然后单击Next按钮,进入下一个菜单窗口。
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数据值被安排在一个矩阵式的表状结构中。
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 系统及数据集创建一、实验目的:了解 SAS 逻辑库组成,创建。
学习 SAS 数据集(数据文件,数据视窗的命名,创建。
学习数据集导入导出,变量定义,变量选择,观测选择等操作,缺失值插值。
二、实验内容(1用户用 SAS 数据步(DA TA STEP创建一个数据集的方法, DA TA 程序步的主要步骤 : Data 所要创建的数据集名 ;Infile ‘ 读取的外部文件名’ < FIRSTOBS=开始读入的行 >< OBS=结束行 > ;Input 变量 1 读入模式变量 2 读入模式……;Run ;(2 确定变量的读入模式共有四种:column 模式Input 变量 1 < $> 开始列 <-结束列 ><.小数位 > 变量2 …… ;例 1:data testd1;infile 'e:dmydir\testdata.dat' firstobs=2 obs=4;input code $1-8 sex $9 bdata $10-16 income 17-23 .2;run;上面的程序的数据步在临时库 WORK 中创建了 SAS 数据集 work.testd1, 而过程步 PRINT 则显示该数据集。
formatted 模式格式一:Input <指针控制 > 变量 1 输入格式<@|@@>… ;格式二:Input <指针控制 > (变量表 (输入格式表 <@|@@> ;例 2:Data testd2 ;Infile ‘ e:\dmydir\testdata.dat’ ;Input code $ 1-8 sex $ 9 @ ;Input bdate $ 10-16 income $17-23 .2 ;Proc printdata=testd2 ;Run;list 模式格式一:Input <指针控制 > 变量1 <$><&> <@|@@>…… ;格式二:Input <指针控制 > 变量 1 <:|&|~> <输入格式> <@|@@>… ;例 3:Data testd5 ;Infile ‘ e:\dmydir\testdata2.txt’ dsd;Input name & $15. age address ~ $40. pc ;Proc print data=testd5 ;Run ;例 4:data A600001(label="邯郸钢铁 ";input date yymmdd10. oppr hipr lopr clpr vol sums name $ hstocd $; format date yymmdd10. ; /*设定变量的输出格式 */label Date="日期 |Date"; /*给变量加标签 */label Oppr="开盘价 |Open Price";cards; /*以下是数据表 */2001-1-16 8.08 8.4 8.05 8.35 45571 37683964 邯郸钢铁 6000012001-1-17 8.39 8.5 8.28 8.29 26345 22076348 邯郸钢铁 6000012001-1-18 8.32 8.4 8.21 8.26 17854 14844434 邯郸钢铁 6000014、增加变量、选择变量和观测创建新数据集例 5:Data class2 ;Input id test1-test5 ;average=mean(test1,test2,test3,test4,test5;test4=test1+test2+test3+test4+test5;Cards ;980801 100 100 100 100 100980802 90 100 90 100 90980803 81 82 83 84 85Proc print data=class2 ;Run ;Input id test1-test5 ; 输入数据average=mean(test1,test2,test3,test4,test5; 求 test1到 test5的平均值test4=test1+test2+test3+test4+test5;例 6:Data class3 (drop=test1 test2 test3 test4 test5 ;Set class2 ;Proc print data=class3 ;Run;创建 class3 数据集,数据来源是 class2 中剔除 test1 test2 test3 test4 test5例 7:Data class4 ;Set class2 ;if average>=80 and (100=test1 or 100=test2 or 100=test3 or 100=test4 or 100=test5 ;Proc printdata=class4 ;Run ;创建数据集 class3, 数据来源是 class2中均值 >=80, 且 test 1~test 5中有一值为100.三、习题1、下列为 1975-1980年夏威夷岛莫纳罗亚火山每月释放 CO2的数据,请将它生成数据集 H1,并剔除释放量小于 330的观测,生成新的数据集 H2。
第六课建立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(以表格的形式输入)。
第十课建立SAS系统的数据集(FILE/IMPORT或EXPORT)用SAS/ACCESS访问外部数据库,只是建立了SAS系统访问外部数据库的访问通道,外部数据库并没有真正转换成SAS数据集,也没有新增一个外部数据库文件大小的存储空间,仅仅是创建了.ACCESS和.VIEW文件,且占用了很少的存储空间,例如我们将外部数据库文件移去,SAS系统中对应的那个*.VIEW就不能显示了。
而我们使用FILE/IMPORT或EXPORT 方法是真正地输入或输出了一个数据库文件,要新增一个与原外部文件大小相当的SAS数据集,且这个数据库文件格式也转换成SAS数据库文件格式。
我们这里主要介绍Excel的*.XLS数据库文件与SAS数据集的转换。
一、Excel的XLS文件输入变成SAS的DATA文件Mircrosoft Office套装软件中一员Excel,是一个功能强大的管理和决策工具软件,被大多数用户熟悉和常用。
虽然Excel中也为用户提供了大量的统计函数和可调入的统计宏模块程序,但遇到需要大数据量的、多种类型的、复杂的大型统计分析,Excel就会显得力不从心。
常常采用将Excel中原始分析数据转入到SAS系统,借助SAS系统的强大的专业的统计分析能力进行分析处理,能使用Excel所不具备的统计模块,能生成独有的专业统计报表和图形。
例如我们有一个上证综合指数的Excel文件,文件名为1a0001w.xls,存放的目录为d:\sasdata\mydir,存放内容是从1990年12月21日开市到2000年1月07日的周K线指数数据,如图10.1所示。
图10.1 上证周K线数据的XLS文件将上述的1a0001w.xls文件输入到SAS系统,创建一个名为XLSSAS.DATA的SAS数据集,操作步骤如下:1.选择File/Import命令,进入选择输入文件类型窗口,在下拉菜单中选择Excel如图10.2所示。
鼠标单击输入框右边的向下箭头,弹出下拉菜单,选择Excel 5 or 7 Spreadsheet (*.xls)选项,然后单击Next按钮,进入下一个菜单窗口。
第八课建立SAS系统的数据集(DATASTEP)用户用SAS数据步(DA TA STEP)创建一个数据集的方法,与前两种SAS/ASSIST和SAS/FSP创建一个数据集的方法相比,DA TA STEP是一种非交互式的全部编程实现的方法。
这种方法能把多样的、复杂的外部文件数据格式通过程序语句的控制转换为我们所需的SAS 数据集。
一、DATA程序步的三个主要步骤为了从外部原始数据文件得到SAS数据集,DATA程序步的三个主要步骤为:●启动一个数据步,命名将要创建的数据集(使用DATA语句)●确定要读入的外部文件(使用INFILE语句)●描述如何读入每一条记录(使用INPUT语句)如果需要在程序中直接嵌入数据,第二步用CARDS语句代替INFILE语句。
所对应的一般程序结构如下:Data所要创建的数据集名;Infile ‘读取的外部文件名’ < FIRSTOBS=开始读入的行>< OBS=结束行> ;Input 变量1 读入模式变量2 读入模式……;Run ;此程序结构很容易被错误理解为顺序结构,其实它的内部执行结构是一种循环结构。
如图8.1所示是它执行过程的程序流程图。
PDV (Program Data Vector )称为程序数据向量,它是根据DATA 步中的INPUT 语句所确定的变量和变量的读入模式来创建的,假设INPUT 语句中各变量的长度为 name $1-8 、sex $1-2 、bdate 1-8 、age 1-3 、height 1-6、 weight 1-6 、income 1-8、 sdate 1-6 ,所创建的一个PDV 如下表:name sex bdate age height weight income sdate8 2 8 3 6 6 8 6整个DATA 步程序执行过程中,涉及到:● 一个存放外部文件记录的输入缓冲区● 一个存放当前观测的PDV 向量● 一个外部文件记录指针● 一个程序指针● 一个SAS 数据集观测指针如图8.2所示。