开发手册 欢迎您!
软件开发者资料库

SAS - 阵列

SAS阵列 - 从简单和简单的步骤学习SAS,从基本到高级概念,包括概述,环境,用户界面,程序结构,基本语法,数据集,变量,字符串,数组,数字函数,运算符,循环,决策,函数,输入法,宏,日期和时间,SQL,输出传递系统,模拟,直方图,图表,散点图,箱线图,算术平均值,标准偏差,频率分布,交叉制表,T检验,方差,线性回归,Bland- Altman分析,卡方,Fishers精确测试,单向Anova,重复测量分析,假设检验。

SAS中的数组用于使用索引值存储和检索一系列值.索引表示保留内存区域中的位置.

语法

在SAS中,使用以下语法声明数组 :

ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES

在上面的语法 :

  • ARRAY 是声明数组的SAS关键字.

  • ARRAY-NAME 是数组的名称,它遵循与变量名相同的规则.

  • SUBSCRIPT 是数组要存储的值的数量.

  • ($)是一个可选参数,仅在数组要存储字符值时使用.

  • VARIABLE -LIST 是变量的可选列表,它是数组值的占位符.

  • ARRAY-VALUES 是存储在数组中的实际值.它们可以在这里声明,也可以从文件或数据线中读取.

数组声明示例

可以使用上述语法以多种方式声明数组.以下是示例.

# Declare an array of length 5 named AGE with values.ARRAY AGE[5] (12 18 5 62 44);# Declare an array of length 5 named COUNTRIES with values starting at index 0.ARRAY COUNTRIES(0:8) A B C D E F G H I;# Declare an array of length 5 named QUESTS which contain character values.ARRAY QUESTS(1:5) $ Q1-Q5;# Declare an array of required length as per the number of values supplied.ARRAY ANSWER(*) A1-A100;

访问数组值

可以使用 print 访问存储在数组中的值b>程序如下所示.在使用上述方法之一声明它之后,使用DATALINES语句提供数据.

DATA array_example;INPUT a1 $ a2 $ a3 $ a4 $ a5 $;ARRAY colours(5) $ a1-a5;mix = a1||'+'||a2;DATALINES;yello pink orange green blue;RUN;PROC PRINT DATA = array_example;RUN;

当我们执行上面的代码时,它产生以下结果 :

array_character_2_result

使用OF运算符

在分析数据形成数组以执行计算时使用OF运算符数组的整行.在下面的例子中,我们应用每行中的Sum和Mean值.

DATA array_example_OF;   INPUT A1 A2 A3 A4;   ARRAY A(4) A1-A4;   A_SUM = SUM(OF A(*));   A_MEAN = MEAN(OF A(*));   A_MIN = MIN(OF A(*));   DATALINES;   21 4 52 11   96 25 42 6   ;   RUN;   PROC PRINT DATA = array_example_OF;   RUN;

当我们执行上面的代码时,它产生以下结果 :

array_of_result

使用IN运算符

也可以使用IN运算符访问数组中的值,该运算符用于检查数组行中存在值.在下面的示例中,我们检查数据中颜色"黄色"的可用性.此值区分大小写.

DATA array_in_example;   INPUT A1 $ A2 $ A3 $ A4 $;   ARRAY COLOURS(4) A1-A4;   IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No';   DATALINES;   Orange pink violet yellow   ;   RUN;   PROC PRINT DATA = array_in_example;   RUN;

当我们执行上面的代码时,它产生以下结果 :

array_in_result