我失去了滞后功能;以下是我试图做的事情。
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)
我试图使用滞后功能,但它确实给了我想要的东西..
请帮忙。 感谢。
答案 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;