SAS:作为变量组的观察 - 转置

时间:2017-10-11 01:45:50

标签: sas grouping transpose

我认为这很容易,但我无法理解它。

我有一个名为GROUP的变量,然后是日期变量和值变量:

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转换,但它不允许我这样做,因为小组有多次重复观察。

赞赏任何想法

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

你可以使用[System.IO.Directory]::EnumerateFiles("J:\","*","AllDirectories")|out-file -Encoding ascii $outputfile foreach($line in select-string -Path $outputfile) { # Some of the $line is the name of a hidden or system file } ,你只需要对事情进行适当的排序:

PROC TRANSPOSE

然后转置

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