在 SAS EG 5.1 中分组和转置数据
Grouping and Transposing data in SAS EG 5.1
我在 SAS EG (Proc SQL) 工作,我的数据集如下所示:
PC | Year | Frequency
A | 18 | 1
A | 19 | 2
A | 20 | 3
B | 18 | 4
B | 20 | 5
C | 17 | 6
...
我希望它看起来像这样:
PC | 17 | 18 | 19 | 20
A | | 1 | 2 | 3
B | | 4 | | 5
C | 6 | | |
...
随着年份值成为显示频率的列。我玩过 GROUP BY,但它似乎没有满足我的需要。非常感谢任何帮助
data test;
infile cards firstobs=2 dlm='|';
input pc:. year freq;
cards;
PC | Year | Frequency
A | 18 | 1
A | 19 | 2
A | 20 | 3
B | 18 | 4
B | 20 | 5
C | 17 | 6
;;;;
proc print;
run;
proc summary data=test nway completetypes;
class pc year;
freq freq;
output out=test2(drop=_type_);
run;
proc print;
run;
proc transpose data=test2 out=test3 prefix=Year;
by pc;
id year;
var _freq_;
run;
proc print;
run;
我在 SAS EG (Proc SQL) 工作,我的数据集如下所示:
PC | Year | Frequency
A | 18 | 1
A | 19 | 2
A | 20 | 3
B | 18 | 4
B | 20 | 5
C | 17 | 6
...
我希望它看起来像这样:
PC | 17 | 18 | 19 | 20
A | | 1 | 2 | 3
B | | 4 | | 5
C | 6 | | |
...
随着年份值成为显示频率的列。我玩过 GROUP BY,但它似乎没有满足我的需要。非常感谢任何帮助
data test;
infile cards firstobs=2 dlm='|';
input pc:. year freq;
cards;
PC | Year | Frequency
A | 18 | 1
A | 19 | 2
A | 20 | 3
B | 18 | 4
B | 20 | 5
C | 17 | 6
;;;;
proc print;
run;
proc summary data=test nway completetypes;
class pc year;
freq freq;
output out=test2(drop=_type_);
run;
proc print;
run;
proc transpose data=test2 out=test3 prefix=Year;
by pc;
id year;
var _freq_;
run;
proc print;
run;