求大家帮帮忙。我在用SAS处理数据时遇到一个问题。是这样的:
我现在有两个数据集a和b(各表都有很多数据),两个数据集里面的数据结构是这样的:
a表:
idd trdate return1 return2 其它变量
1 20050103 0.1 0.2
1 20050104 0.2 0.3
1 20051221 0.1 0.5
2 20040726 0.2 0.3
2 20060120 0.3 0.8
2 20070908 0.7 0.9
7 20120809 0.5 0.6
b表:
id fordate name 其他变量
1 20050102 张一
1 20051221 张二
2 20060205 张三
2 20060908 张四
2 20070908 张五
4 20100706 张一
现在我的要求是这样的:
如果a表里面idd的数值和b表里面id的数值相等并且同时a表里面trdate的数值和b表里面fordate的数值相等,那么执行如下步骤:
在a表里面,如果某一行数据符合上述“两个相等”的条件,那么从a表该行开始,截取a表该行以上150行的数据,并且要求截取的150行数据中变量idd的数值与符合上述“两个条件”的idd数值要相同,进行如下回归:
return1=A+B*return2+残差 得到A和B。(其中A为截距项;B为系数)
最后得到的数据应该如下:
idd trdate name A B
1 20051221 张二 回归值 回归值
2 20070908 张五 回归值 回归值
在此,上面数据第一行A和B由(1 20050103 0.1 0.2)和(1 20050104 0.2 0.3)回归而得;
第二行A和B由(2 20040726 0.2 0.3)和(2 20060120 0.3 0.8)回归而得。
小弟在此不胜感激!