- SAS教程
- SAS - 主页
- SAS - 概述
- SAS - 环境
- SAS - 用户界面
- SAS - 程序结构
- SAS - 基本语法
- SAS - 数据集
- SAS - 变量
- SAS - 字符串
- SAS - 阵列
- SAS - 数字格式
- SAS - 运营商
- SAS - 循环
- SAS - 决策
- SAS - 函数
- SAS - 输入方法
- SAS - 宏
- SAS - 日期和时间
- SAS 数据集操作
- SAS - 读取原始数据
- SAS - 写入数据集
- SAS - 连接数据集
- SAS - 合并数据集
- SAS - 数据集子集化
- SAS - 排序数据集
- SAS - 格式化数据集
- SAS-SQL
- SAS - 输出传输系统
- SAS - 模拟
- SAS 基本统计程序
- SAS-算术平均值
- SAS-标准差
- SAS - 频率分布
- SAS - 交叉表
- SAS - T 测试
- SAS - 相关性分析
- SAS - 线性回归
- SAS - 布兰德-奥特曼分析
- SAS-卡方
- SAS - 费舍尔精确测试
- SAS - 重复测量分析
- SAS-单向方差分析
- SAS-假设检验
- SAS 有用资源
- SAS - 快速指南
- SAS - 有用的资源
- SAS - 问题与解答
- SAS - 讨论
SAS - 阵列
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;
访问数组值
可以使用如下所示的打印过程来访问存储在数组中的值。使用上述方法之一声明后,使用 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;
当我们执行上面的代码时,它会产生以下结果 -
使用 OF 运算符
OF 运算符用于分析数组中的数据以对数组的整行执行计算。在下面的示例中,我们应用每行中值的总和和平均值。
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;
当我们执行上面的代码时,它会产生以下结果 -
使用 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;
当我们执行上面的代码时,它会产生以下结果 -