2015-10-07 81 views
0

在我想要以識別與缺失值線,然後替換與變量的先前值的變量(因爲該變量將總是空白太)SAS滯後功能沒有識別缺失值

DATA qfr_channel_split_FY16_SEPT1; 
    set qfr_channel_split_FY16_SEPT; 
    if order_count=. then do; 
    avg_yr1_gm=lag1(avg_yr1_gm); 
    avg_yr2_gm=lag1(avg_yr2_gm); 
    avg_yr3_gm=lag1(avg_yr3_gm); 
    avg_yr4_gm=lag1(avg_yr4_gm); 
    avg_yr5_gm=lag1(avg_yr5_gm); 
end; 
    run; 
我有此代碼

它什麼也沒做。這不是=的問題。

我也嘗試輸出到不同的變量名稱。

我懷疑這是缺乏我理解滯後函數如何工作的東西。

任何人都知道爲什麼上述不會工作?

+0

可能的複製[滯後函數在SAS中不起作用](http://stackoverflow.com/questions/9484728/lag-function-doesnt-work-in-sas) –

回答

0

首先定義滯後變量,然後做比較丟失並更換,如果是的話。

data want; 
set have; 

lagged=lag(var); 

if var=. then var=lagged; 

run; 
0

我管理與所述聚結功能來回答這個

data zeroed (drop=&var. rename=(try=&var.)); 
set live_sorted; 
orig=&var.; 
try=coalesce(&var.,lag1(&var.),lag2(&var.),lag3(&var.),lag4(&var.)); 
run; 

此自動識別變量是否是空白的,(如我上面指定最多4個)取最近的滯後