Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays SAS编程:将数组分配给数据集列_Arrays_Sas - Fatal编程技术网

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

Arrays SAS编程:将数组分配给数据集列,arrays,sas,Arrays,Sas,我有一个数据集,我想给我的一列分配一个数组 例如: x y z 2 1 5 9 3 5 2 3 4 我想给变量x分配一个数组Arrayx,这样Arrayx{1}=2,Arrayx{2}=9和Arrayx{3}=2 这在SAS中可能吗 谢谢大家! 否。SAS数据步骤作为围绕数据集的外部环路运行。您可以通过lagX()函数访问当前记录和滞后值。数组

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

例如:

            x     y    z
            2     1    5
            9     3    5
            2     3    4
我想给变量x分配一个数组Arrayx,这样Arrayx{1}=2,Arrayx{2}=9和Arrayx{3}=2

这在SAS中可能吗


谢谢大家!

否。SAS数据步骤作为围绕数据集的外部环路运行。您可以通过lagX()函数访问当前记录和滞后值。数组跨行操作,而不是跨列操作

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

是的,这是可能的

data arrayout ; set mydata (obs=3) ; array arrayx{3} ; retain arrayx . ; n+1 ; arrayx{n} = x ; keep arrayx: ; run ; 数据排列; 设置mydata(obs=3); 数组arrayx{3}; 保留arrayx; n+1; arrayx{n}=x; 保留arrayx:; 跑
如果有10个观测值呢?是否需要10个元素的“宽”数组?您可能会更好地了解PROC转置。

如果可以使用,您需要的是SAS/IML中的列向量(SAS/IML与R类似,因为它使用矩阵作为其主要数据对象,而不是行数据集)。在base SAS中,如果不重新构造数据(如Chris所示),则无法执行此操作