base SAS programming学习笔记13(Array)

1.Array array-name{dimension} <elements>

        array-name:向量名称

        dimension:向量长度,默认为1;

        elements:列出变量名,变量名要么全是数值变量或者全是字符变量

        array-name和variable不能相同;也不能和函数名称相同;

        array的名称不可以在label、format、drop和keep或者length语句中使用。

dimension可以取数值、数值范围或者*

array sales{4} qtr1 qtr2 qtr3 qtr4

array sales{96:99} qtr1-qtr4

array sales{*} qtr1 qtr2 qtr3 qtr4

变量名取值可以变量名、也可以是“-”连接的变量名序列,也可以是_ALL_(所有变量),_NUMERIC_(所有数值变量),_CHARACTER_(所有字符变量)

如:array sales{*} _numeric_;

当读取一行数据放入PDV里面(程序向量),在这行数据里面对array里面的变量值循环做相同的处理。

2.ARRAY 函数 

        dim(array-name):计算向量里面的变量个数

        

3.使用ARRAY 创建新变量

          array  array-name{dimension} <variablename> )

创建新变量,未自定义变量名,变量名默认为array-name后接1,2,.....dimension ;

后接 $ 表示字符型,默认长度为8,可以加上数值表示字符的长度

比如:array firstname{5} $ 24;

举例如下:

也可以自定义variable-name;

给新建的变量赋初值:

        array  array-name {dimension} <variable name> (initial values)

在变量名之后赋初值,初值和变量名一一对应,初值间用空格或逗号隔开,初值用括号括起来;

在向量里面赋值的初值在PDV中会自动从第一行开始予以保留,不清空

如:array goal{4} g1 g2 g3 g4 (9000,9300,9600,9900)

       array col{3} $ color-color3  (“red”,"green","blue")

也可以不设置变量名为向量里面的每个元素赋值

        array var{4} (1 2 3 4),

举例如下:

结果如下:

 如上在ARRAY中定义的变量,会输出至SAS数据集,因此可以用_TEMPORARY_来创建临时变量,临时变量不会出现在SAS数据集中:

4.使用ARRAY创建多维向量

        上述均是用ARRAY创建的一维向量,创建二维向量如下:

        array new{3,4} x1-x12; {r,c}: r表示row,c表示column;

        可以使用new(2,3)来引用向量里面的值;

向量如下:

举例如下:

在每次迭代开始给qtr{i}赋值为0,是为了避免上一个qtr值累积到下一个qtr值;

上述程序执行逻辑如下:

1)SAS在PDV中先根据ARRAY 组织或创建新变量如下:

2)当第一个DO循环i=1时,qtr{1}=0;面对第二个DO循环时,qrt{1}+m{1,1}:

qrt{1}+m{1,2}:

qtr{1}+m{1,3}:

3)结束循环时,PDV如下:

最终结果如下:

4)还可以实现数据转置,横向数据转成纵向数据举例如下:

源数据:

转置后数据

相关推荐

  1. pandas学习笔记13

    2024-07-18 01:22:02       31 阅读
  2. C++ -- Array 学习

    2024-07-18 01:22:02       27 阅读
  3. 学习笔记】Redis学习笔记——第13章 客户端

    2024-07-18 01:22:02       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 01:22:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 01:22:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 01:22:02       58 阅读
  4. Python语言-面向对象

    2024-07-18 01:22:02       69 阅读

热门阅读

  1. 441. 排列硬币

    2024-07-18 01:22:02       22 阅读
  2. 1.时间复杂度/空间复杂度

    2024-07-18 01:22:02       21 阅读
  3. [rustlings]08_enums

    2024-07-18 01:22:02       22 阅读
  4. 大数据测试

    2024-07-18 01:22:02       22 阅读
  5. Hadoop学习记录一

    2024-07-18 01:22:02       22 阅读
  6. C++正则表达式

    2024-07-18 01:22:02       22 阅读
  7. try-with-resources

    2024-07-18 01:22:02       21 阅读