我有数据集,我想将一个数组分配给我的一个列。
举个例子:
x y z
2 1 5
9 3 5
2 3 4
我想将数组Arrayx分配给变量x,以便Arrayx {1} = 2,Arrayx {2} = 9和Arrayx {3} = 2.
这可能在SAS?
谢谢!
答案 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节目),就无法做到。