2012-09-26 78 views
0

我已经以下的数据结构“阵列” 指令来操纵数据

IDýXX11 xx12 xx13 xx14 XX21 xx22 xx23 xx24 xx31 xx32 xx33 xx34 xx41 xx42 xx43 xx44;

其中Y是响应变量,x是协变量。

  • XX11 xx12 xx13 xx14对于组4个重复测量1.
  • XX21 xx22 xx23 xx24对于组4个重复测量2.
  • xx31 xx32 xx33 xx34对于组4个重复测量3
  • xx41 xx42 xx43 xx44对于组4个重复测量4.

我需要使用的“阵列”命令在SAS以产生如下的数据集来操作数据:

ID是时间组

谢谢。

回答

3
data want; 
set have; 
array xx xx11--xx44; 
do _t = 1 to dim(xx); 
    x=xx[_t]; 
    group = substr(vname(xx[_t]),3,1); 
    time = substr(vname(xx[_t]),4,1); 
    output; 
end; 
run; 

这取决于XX11通过xx44是连续变量(未在任何特定的顺序)。

+0

有一件事我刚刚注意到/想要。我想创建一个时间变量从1到4,但在代码中,在获得输出后,_t从1到16 ...所以基本上我想在输出中包含以下内容:ID Y X时间组。我希望这不是一件难事。谢谢! – user9292

+0

如果我理解你是正确的(组=第三个字符,时间=变量名中的第四个字符,x =原始变量值),然后我在编辑中进行了更改。 – Joe

+0

非常感谢! – user9292