sas统计分析sas数组简介

sas统计分析sas数组简介

ID:7291085

大小:212.20 KB

页数:13页

时间:2018-02-10

sas统计分析sas数组简介_第1页
sas统计分析sas数组简介_第2页
sas统计分析sas数组简介_第3页
sas统计分析sas数组简介_第4页
sas统计分析sas数组简介_第5页
资源描述:

《sas统计分析sas数组简介》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第54章SAS数组及其应用本章将介绍SAS数组的基本概念、种类,并结合实际问题,给出SAS程序,以呈现SAS数据的正确使用方法。54.1SAS数组的概述54.1.1什么是数组?在程序设计中,为了处理方便,把具有相同类型的若干变量或者结构按有序的形式组织起来,这些按序排列的同类数据的集合称为数组,而数组中的每个单体称为数组元素,操作数组时,通常使用下标运算符进行定位。由于有了数组,可以用“数组名+下标”的方式引用一系列变量,其中下标一般是从0开始的数字(索引),用来识别数组元素。在许多场合,使用数组

2、可以缩短和简化程序,因为可以利用下标设计一个循环,高效处理多种情况。数组有上界和下界,数组的元素在上下界内是连续的,当数组下标越界的时候程序就会出现溢出错误,因此使用数组进行编程时要格外小心数组的界限。54.1.2SAS为什么淡化了数组?由于SAS面向数据集编程的特点以及data步自循环机制,当使用SAS编程时,列向的变量就形成了天然的列数组,或者叫“隐含”数组。这种机制可以在不声明任何数组的情况下轻易地使用类似数组的功能,在data步中对每行观测进行相同的一系列操作。故此,数组的概念在SAS中逐

3、渐被淡化,初学者根本无需知道数组的概念就可以轻易地解决许多复杂统计问题,这在其他通用编程语言中是不可想象的。54.1.3在什么情况下需要使用SAS数组?一般情况下,使用SAS进行统计分析是无需数组的,但是在某些场合需要对原始数据集进行整理加工,尤其是要对单一大型数据集中多个变量进行一系列相同或者相似的操作时,简单的SAS编程或者宏编程都无法胜任,这个时候就是SAS数组大展神威的时候了。然而,随着版本的提高,SAS专门为二维数组设计了更加有效的矩阵模块,也就是SAS的IML过程,这个过程可以轻松地将

4、数据集映射成矩阵以代替大多数SAS数组的功能,并且更加便捷和有效,故如今SAS数组的应用价值被相当程度的削弱。但不管怎么说,数组作为一个通用编程语言的重要概念是复杂编程过程中无法回避的手段,有些情况下甚至是唯一的解决办法,因此熟练掌握数组的基本概念和编程思想是提高自我编程水平的一个重要途径。54.2SAS数组的语法结构54.2.1SAS数组的概念通过本书基础章节的介绍,我们已经有所了解,SAS与其他通用编程语言不同,它是“面向数据集”的编程,也因此它的变量在赋值时并非只代表一个数值或者字符串,而是

5、一组数据的集合(即数据集的一列),故相应的,SAS的数组概念也和通常意义上的数组有所不同。为了方便对比学习,本节拟采用的背景资料为“8名健康志愿者的体检结果”(即一个由5名男生和3名女生的编号、性别、身高和体重组成的简单样本资料),它的数据概况如图54-1所示。图54-1“8名健康志愿者”背景资料的数据概况dataPGM54_2_1;inputidsex$heightweight;cards;1male173645male179808male1687510male1756212male171601

6、4female1665516female1555020female16548;run;在SAS中运行上段代码后,会在work库中生成结构如图54-1所示的数据集PGM54_2_1。1.SAS的变量(列数组、“隐含”数组)观察数据集PGM54_2_1,我们可以看到,4个SAS变量id、sex、height和weight均代表一列数据,SAS官方并未对此作出特别的说明,但通常我们把SAS的变量理解成列数组,或者叫做“隐含”数组,它是由一组数值或者字符串组成,在使用时极其方便。比如若需要将8名学生的身高

7、全部加1,则直接对其数组名或者说变量名操作即可,如下段程序:dataPGM54_2_2;setPGM54_2_1;height=height+1;run;无需循环语句和下标符就可以操作一组数据(一列数据),这是SAS入门门槛较其他通用语言低的一个重要原因。但是,有所得就必有所失,在将“列数组”弱化成变量后,针对特定数组元素的操作反而要比通用编程复杂,比如若试图将id为5的学生的身高加1,则需要使用条件语句,如下段程序所示:dataPGM54_2_3;setPGM54_2_1;ifid=5thend

8、o;height=height+1;end;run;从这里我们可以了解到,SAS的变量虽然等同于通用编程语言中的数组,但它并不能通过下标运算符进行定位,只能整体进行相同的运算,或者使用条件语句剔除不需要的数组元素。2.SAS的数组(行数组)由于SAS的变量与其他通用编程语言中的变量概念不同,因此大大弱化了数组概念在SAS编程中的地位,许多使用SAS的朋友甚至认为SAS就根本没有数组,这在C或者JAVA中是不可想象的。但实际上,SAS是有数组这个概念的,比如假如希望同时将8名学生的身

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。