我「迷路了具有滯後功能;在這裏下面就是我想要做 如何使用滯後函數計算在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