什么是SAS数组:如何定义、定义方法
数组是用来临时存放一系列变量的语法结构,常用于需要对一些变量做相同处理的情况。
需要注意的是,SAS的数组跟标准语言的数组是不一样,这一点首先要弄明白。
在SAS中,数组不是数据结构,它存储的不是数据,而是变量,因此,数组元素即是变量,也就是凡是可用表达式的地方,均可使用数组元素;
数组只在当前数据步中有效,也就是数组名只能在当前数据步中表示数组,不同的数据步中可以使用相同的数组名但不表示同一个数组;默认情况下,数组的标号是从1开始的。
数组的定义可以利用如下SAS语句:
ARRAY
array-name {subscript} <$><length> <array-elements> <(initial-value-list)>;
说明:
• 数组名的命名规范与变量命名完全相同,但是数组名不能与当前数据步中变量同名;
• 变量列表必须由相同类型的变量组成,要么全是数值型,要么全是字符型;数组列表同样可以是缩写形式;
• 元素个数有三种形式,分别对应于创建数组的三种方法;元素个数必须用大括号({})、中括号([])或圆括号(())括起来,三者等价。
定义数组最简单的方法是直接写明元素的个数,也可以用上下界来定义元素个数的范围,如下两种定义方法。
array books{3} Reference Usage Introduction;
array books{0:2} Reference Usage Introduction;
这样的好处是可以自定义数组第一个元素的标号,上面的例子就是从0开始的,自定义标号某些时候会带来好处,如下面两种定义方式:
array first{10} Year76-Year85;
array second{76:85} Year76-Year85;
数组second显然更方便,不容易引起混淆。