SAS中文论坛
标题:
如何得到需要的数据集
[打印本页]
作者:
shiyiming
时间:
2011-6-29 15:11
标题:
如何得到需要的数据集
data lab;
input name$;
cards;
hb
alt
;
run;
data aaa;
input hop no hb0 hb2 alt0 alt1 alt2@@;
cards;
1 1 5 4 20 30 40
1 2 6 5 40 50 60
2 3 3 6 20 30 40
2 4 4 7 20 30 40
;
run;
通过数据集lab中name变量进行循环
同时指定%let gcindex=0 1 2; /*表示后缀*/
最终的目的是将hb0 hb1 hb2/alt0 alt1 alt2纵向拼接*/
想得到的数据集
hop no lq lh1 lh2
1 1 5 . 4
1 2 6 . 5
2 3 3 . 6
2 4 4 . 7
1 1 20 30 40
1 2 40 50 60
2 3 20 30 40
2 4 20 30 40
谢谢!
作者:
shiyiming
时间:
2011-6-29 16:21
标题:
Re: 如何得到需要的数据集
[code:v6f1xntx]data aaa;
input hop no hb0 hb2 alt0 alt1 alt2@@;
cards;
1 1 5 4 20 30 40
1 2 6 5 40 50 60
2 3 3 6 20 30 40
2 4 4 7 20 30 40
;
data out;
length var_name $10;
set aaa;
array val{*} hb0-numeric-alt2;
do i=1 to dim(val);
var_name=compress(vname(val(i)),'','d');
var_suffix=input(compress(vname(val(i)),'','dk'),best.);
var_val=val(i);
output;
end;
keep hop no var_name var_suffix var_val;
run;
proc sort data=out out=out;
by hop no var_name;
run;
proc transpose data=out out=out(drop=_name_) prefix=lh;
id var_suffix;
var var_val;
by hop no var_name;
run;[/code:v6f1xntx]
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2