2017-02-15 59 views
0
Dv1 Dv2 Dv3 Dv4 Dv5 Dv6 Dv7 Dv8 
1 1 2 5 5 7 9 9 
3 4 8 8 8 9 10 . 
2 5 9 11 13 13 . . 
4 4 5 9 9 . . . 
2 6 7 9 . . . . 
2 4 6 . . . . . 
1 3 . . . . . . 
3 . . . . . . . 

我有一个更大的版本的上述数据。每列都有一个因子,当乘以前一列数据给出当前列数据。总和以前的行 - SAS

该因子=(前5行的总和)/(前5行的总和向左一列) 例如。柱2因子=(3 + 4 + 6 + 4 + 5)/(1 + 2 + 2 + 4 + 2)= 2,所得到的数据是:

Dv1 Dv2 Dv3 Dv4 Dv5 Dv6 Dv7 Dv8 
1 1 2 5 5 7 9 9 
3 4 8 8 8 9 10 . 
2 5 9 11 13 13 . . 
4 4 5 9 9 . . . 
2 6 7 9 . . . . 
2 4 6 . . . . . 
1 3 . . . . . . 
3 6 . . . . . . 

使用任何可用的行,如果5不存在于数据之上。

我想用SAS填写这些数据。我的问题是如何总结前5行,我相信我可以从那里开始。

非常感谢提前!

回答

1

滞后函数。

sum_prev5 = lag(x) + lag2(x) + lag3(x) + lag4(x) + lag5(x);