2012-09-26 81 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