data a;
input x$ y$ z @@;
cards;
a x 10
b y 10
c z 15
a y 11
b z 12
c x 13
a z 14
b x 19
c y 20
;
proc sort data = a out = b;
by x;
proc transpose data = b out = c let prefix = a;
id y;
by x;
run;
Obs | x | y | z |
---|---|---|---|
1 | a | x | 10 |
2 | b | y | 10 |
3 | c | z | 15 |
4 | a | y | 11 |
5 | b | z | 12 |
6 | c | x | 13 |
7 | a | z | 14 |
8 | b | x | 19 |
9 | c | y | 20 |
Obs | x | _NAME_ | ax | ay | az |
---|---|---|---|---|---|
1 | a | z | 10 | 11 | 14 |
2 | b | z | 19 | 10 | 12 |
3 | c | z | 13 | 20 | 15 |