课程表

SAS 基础

SAS 数据集操作

SAS 数据展示

SAS 基本统计程序

工具箱
速查手册

SAS数组

当前位置:免费教程 » 大数据/云 » SAS

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

句法

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

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

在上面的语法中:

  • ARRAY是声明数组的SAS关键字。
  • ARRAY-NAME是遵循与变量名称相同的规则的数组的名称。
  • SUBSCRIPT是数组要存储的值的数量。
  • ($)是一个可选参数,仅当数组要存储字符值时使用。
  • VARIABLE-LIST是变量的可选列表,它们是数组值的占位符。
  • ARRAY-VALUES是存储在数组中的实际值。 它们可以在这里声明,或者可以从文件或dataline中读取。

数组声明示例

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

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

访问数组值

存储在数组中的值可以通过使用如下所示的打印过程访问。 在使用上述方法之一声明之后,使用DATALINES语句提供数据。

  1. DATA array_example;
  2. INPUT a1 $ a2 $ a3 $ a4 $ a5 $;
  3. ARRAY colours(5) $ a1-a5;
  4. mix = a1||'+'||a2;
  5. DATALINES;
  6. yello pink orange green blue
  7. ;
  8. RUN;
  9. PROC PRINT DATA=array_example;
  10. RUN;

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

使用OF运算符

当分析数组形式的数组以对数组的整个行执行计算时,使用OF运算符。 在下面的示例中,我们应用每行中的值的和和均值。

  1. DATA array_example_OF;
  2. INPUT A1 A2 A3 A4;
  3. ARRAY A(4) A1-A4;
  4. A_SUM=SUM(OF A(*));
  5. A_MEAN=MEAN(OF A(*));
  6. A_MIN=MIN(OF A(*));
  7. DATALINES;
  8. 21 4 52 11
  9. 96 25 42 6
  10. ;
  11. RUN;
  12. PROC PRINT DATA=array_example_OF;
  13. RUN;

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

使用IN运算符

也可以使用IN运算符访问数组中的值,该运算符检查数组行中是否存在值。 在下面的例子中,我们检查数据中颜色“黄色”的可用性。 此值区分大小写。

  1. DATA array_in_example;
  2. INPUT A1 $ A2 $ A3 $ A4 $;
  3. ARRAY COLOURS(4) A1-A4;
  4. IF 'yellow' IN COLOURS THEN available='Yes';ELSE available='No';
  5. DATALINES;
  6. Orange pink violet yellow
  7. ;
  8. RUN;
  9. PROC PRINT DATA=array_in_example;
  10. RUN;

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

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号