Y X1 ID
2 3 1
4 6 1
5 1 1
然后把ID 和回归生成的INTERCEPT放在一个新的TABLE1 中。
当在做Y=X2的回归时,DATASET用程序生成ID=2的一列。
Y X2 ID
2 5 2
4 2 2
5 3 2
然后把ID 和回归生成的INTERCEPT放在一个新的TABLE2中。
没有想出很好的办法,请好心人帮帮我,非常感谢。
多谢 *-^作者: shiyiming 时间: 2011-2-6 22:25 标题: Re: 急: SAS程序动态生成ID列,再做线形回归 to happy6886
[code:2aj115hh]
data yourdata;
do y=1 to 5;
x1=ranuni(0);
x2=rannor(0);
output;
end;
run;
proc transpose data=yourdata out=newdata(rename=(col1=x));
by y;
var x:;
run;
proc sort data=newdata;
by _NAME_;
run;
proc reg data=newdata outest=est noprint;
by _NAME_;
model y = x;
run;quit;
[/code:2aj115hh]作者: shiyiming 时间: 2011-2-7 00:53 标题: Re: 急: SAS程序动态生成ID列,再做线形回归 谢谢版主,你的代码的确写的很巧妙,非常佩服。
我想在你的代码基础上进行如下修改,不知道如何实现?
加上两个动态生成的列,ID=1, OR ID=2, 因为最后OUTEST的结果保存后,必须得生成如下的数据格式,我才能用这个数据来
进行进一步的回归,这里的ID其实就有些像数据表中的PRIMARY KEY, 和X1 OR X2一一对应的。
the examples of data format:
ID intercept (got from y=x1)
1 0.2
1 0.3
1 0.4
ID intercept (got from y=x2)
2 0.1
2 0.2
2 0.3