我“迷路了具有滞后功能;在这里下面就是我想要做 如何使用滞后函数计算在SAS
data out;
set in;
by a;
y = 0.5 ;
y = lag(y) * (1 - x); end;
run;
‘在’表只有X和序列值A,我想要的是创建“出”表,其中Y值从“0.5”开始,然后Y的其余部分将来自先前Y值的计算乘以(1-X)=> Y = lagY *( 1 - X)
我试图使用延迟功能,但它确实给了我想要的东西..
请帮忙。 谢谢。
我“迷路了具有滞后功能;在这里下面就是我想要做 如何使用滞后函数计算在SAS
data out;
set in;
by a;
y = 0.5 ;
y = lag(y) * (1 - x); end;
run;
‘在’表只有X和序列值A,我想要的是创建“出”表,其中Y值从“0.5”开始,然后Y的其余部分将来自先前Y值的计算乘以(1-X)=> Y = lagY *( 1 - X)
我试图使用延迟功能,但它确实给了我想要的东西..
请帮忙。 谢谢。
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;
请你能更多的数据添加到您的表A和X列,直到找到x的值= 1 – Zeddy 2013-04-30 02:29:17