或者说:不用macro & sql ,如何根据另外的变量将某个变量分成几个变量?
谢谢.
- data sst;
- do id = 1 to 10;
- do tik = 1 to 4;
- do group = 1 to 3;
- input sst @@;
- output;
- end;
- end;
- end;
- cards;
- 0.37469 0.64 0.58 0.62478 0.96 0.87 0.76006 1.2 1.1 1.02706 . 1.56
- 0.41385 0.6 0.56 0.60342 0.92 0.89 0.79121 1.12 1.12 1.01193 . 1.53
- 0.42042 0.69 0.59 0.6404 0.94 0.82 0.8019 1.18 1.13 0.97137 . 1.55
- 0.42453 0.74 0.7 0.5429 0.91 0.85 0.87932 1.31 1.14 0.92471 . 1.44
- 0.45123 0.75 0.75 0.58918 0.98 0.97 0.81702 1.3 1.2 1.03863 . 1.53
- 0.37024 0.65 0.66 0.69153 0.97 0.96 0.74493 1.21 1.2 1.00036 . 1.65
- 0.38804 0.78 0.67 0.58295 0.96 0.93 0.7476 1.26 1.22 1.05376 . 1.64
- 0.41118 0.67 0.64 0.64881 1 0.95 0.78409 1.29 1.26 1.00392 . 1.55
- 0.43966 0.71 0.69 0.65949 1.03 0.93 0.7832 1.2 1.15 1.01549 . 1.57
- 0.42809 0.74 0.7 0.63279 1.09 0.92 0.85351 1.25 1.21 1.02083 . 1.57
- ;
- run;
- proc sort data=sst out=sst_sort;
- by tik group;
- run;
- data tik1 tik2 tik3 tik4;
- set sst_sort;
- if tik=1 then output tik1;
- else if tik=2 then output tik2;
- else if tik=3 then output tik3;
- else if tik=4 then output tik4;
- run;
- data tik1;
- set tik1;
- byid=_n_;
- rename sst = tik1;
- data tik2;
- set tik2;
- byid=_n_;
- rename sst = tik2;
- data tik3;
- set tik3;
- byid=_n_;
- rename sst = tik3;
- data tik4;
- set tik4;
- byid=_n_;
- rename sst = tik4;
- run;
- data tik(keep=group tik1-tik4 id );
- merge tik1-tik4;
- by byid;
- run;