2017-10-11 67 views
0

我認爲這很容易,但我無法擺脫困境。SAS:作爲變量組的觀察 - 轉置

我有一組名爲變量,然後日期變量和一個值變量:

GROUP Date Value 
A 1-1-2010 1 
A 2-1-2010 2 
A 3-1-2010 3 
A 4-1-2010 4 
B 1-1-2010 5 
B 2-1-2010 6 
B 3-1-2010 7 
B 4-1-2010 8 
C 1-1-2010 9 
C 2-1-2010 10 
C 3-1-2010 11 
C 4-1-2010 12 

我現在想的是

Date  A B C 
1-1-2010 1 5 9 
2-1-2010 2 6 10 
3-1-2010 3 7 11 
4-1-2010 4 8 12 

我試圖PROC轉,但它不會讓我因爲小組有一次以上的重複觀察。

任何想法表示讚賞

回答

0

您可以輕鬆地proc sql做到這一點 - 如果你事先知道所有組:

proc sql; 
    select date, 
      max(case when group = 'A' then value end) as A, 
      max(case when group = 'B' then value end) as B, 
      max(case when group = 'C' then value end) as C 
    from t 
    group by date; 
+0

爲什麼你會這樣做?你必須提前知道這些團體?爲什麼不使用TRANSPOSE?它很容易處理。 – DomPazz

0

你可以使用PROC TRANSPOSE,你只需要適當的事情排序:

proc sort data=have out=temp; 
by date group; 
run; 

然後移調

proc transpose data=temp out=want; 
by date; 
id group; 
var value; 
run;