如何在sas的计算中使用滞后函数

时间:2013-04-29 23:15:52

标签: function time sas lag

我失去了滞后功能;以下是我试图做的事情。 enter image description here

data out;
    set in;
    by a;
 y = 0.5 ; 
 y =  lag(y) * ( 1 - x);  end;
run;

"在"表只有X和序列值A,我想要的是创建" out"表格,y值以" 0.5"开头。那么Y的其余部分将来自先前Y值的计算乘以(1-X)=> Y = lagY *(1 - X)

我试图使用滞后功能,但它确实给了我想要的东西..

请帮忙。 感谢。

1 个答案:

答案 0 :(得分:5)

LAG函数对正在读入的数据起作用。由于输入数据集中不存在变量y,因此LAG函数将无法正常工作。

而是使用RETAIN语句保存y的前一个值。

data in;
input A x;
datalines;
1   0.25
2   0.16
3   0.1
4   0.5
5   0.6

data out;
    set in;
    by A;
retain y 0.5;
if _n_>1 then y=y*(1-x); 
run;