2017-02-15 79 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);