SAS编程:将数组分配给数据集列

时间:2013-11-24 22:28:15

标签: arrays sas

我有数据集,我想将一个数组分配给我的一个列。

举个例子:

            x     y    z
            2     1    5
            9     3    5
            2     3    4

我想将数组Arrayx分配给变量x,以便Arrayx {1} = 2,Arrayx {2} = 9和Arrayx {3} = 2.

这可能在SAS?

谢谢!

3 个答案:

答案 0 :(得分:0)

没有。 SAS Data Step作为数据集周围的外环运行。您可以通过lagX()函数访问当前记录和滞后值。数组跨行而不是列操作。

这需要您重新思考如何解决问题。如果你需要帮助,请发一个问题,我相信这里有人会帮你。

答案 1 :(得分:0)

是的,这是可能的。

data arrayout ;
  set mydata (obs=3) ;
  array arrayx{3} ;
  retain arrayx . ;

  n+1 ;
  arrayx{n} = x ;

  keep arrayx: ;
run ;

如果有10个观察结果怎么办?你想要一个阵列10个元素'宽'吗?你可能会更好地看看PROC TRANSPOSE。

答案 2 :(得分:0)

您要求的是SAS / IML中的列向量,如果您可以使用它(SAS / IML与R类似,因为它使用矩阵作为其主要数据对象,而不是行方向数据集)。在基础SAS中,如果不重组数据(如Chris节目),就无法做到。