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所示),则无法执行此操作