teqel 发表于 2015-1-8 13:24 
谢谢您,用了retain命令之后就可以啦~~~我在解决这个问题的时候,也找到了另外一种解决办法(刚刚找到):
data a;
input bmi fat number OR;
n=_n_;
cards;
1 1 100 1.2
1 2 120 1.3
1 3 150 1.4
2 1 130 1.1
2 2 140 1.4
2 3 110 1.5
;
run;
proc transpose data=a out=b;
by n bmi;
var number or;
copy fat;
run;
data c; set b;
if bmi="2" then n=n-3;
index=compress(cat(_name_,"_",n));
run;
proc transpose data=c out=d;
by bmi;
id index;
var col1;
run;