原始数据origin=
| id | para | value |
1 | a | 12 |
2 | b | 35 |
3 | c | 21 |
4 | d | 5 |
5 | d | 14 |
6 | c | 5 |
7 | b | 6 |
8 | d | 1 |
9 | a | 8 |
10 | c | 1 |
11 | d | 35 |
12 | b | 9 |
我希望变成
a=
| id | para | value | value_a |
1 | a | 12 | 12 |
9 | a | 8 | 8 |
b=
| id | para | value | value_b |
2 | b | 35 | 35 |
7 | b | 6 | 6 |
12 | b | 9 | 9 |
c=
| id | para | value | value_c |
3 | c | 21 | 21 |
6 | c | 5 | 5 |
10 | c | 1 | 1 |
d=
| id | para | value | value_d |
4 | d | 5 | 5 |
5 | d | 14 | 14 |
8 | d | 1 | 1 |
11 | d | 35 | 35 |
结果变成
a=
| id | para | value | value_a | value_b | value_c | value_d |
1 | a | 12 | 12 | . | . | . |
9 | a | 8 | 8 | . | . | . |
b=
| id | para | value | value_a | value_b | value_c | value_d |
2 | b | 35 | . | 35 | . | . |
7 | b | 6 | . | 6 | . | . |
12 | b | 9 | . | 9 | . | . |
c=
| id | para | value | value_a | value_b | value_c | value_d |
3 | c | 21 | . | . | 21 | . |
6 | c | 5 | . | . | 5 | . |
10 | c | 1 | . | . | 1 | . |
d=
| id | para | value | value_a | value_b | value_c | value_d |
4 | d | 5 | . | . | . | 5 |
5 | d | 14 | . | . | . | 14 |
8 | d | 1 | . | . | . | 1 |
11 | d | 35 | . | . | . | 35 |
我的代码是
data origin;
input id $ para $ value;
cards;
1 a 12
2 b 35
3 c 21
4 d 5
5 d 14
6 c 5
7 b 6
8 d 1
9 a 8
10 c 1
11 d 35
12 b 9
;
run;
data a b c d;
set origin;
if para="a" then do;value_a=value;output a;end;
if para="b" then do;value_b=value;output b;end;
if para="c" then do;value_c=value;output c;end;
if para="d" then do;value_d=value;output d;end;
run;
究竟哪里出了问题,应该怎么改?