2015-10-07 46 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个)取最近的滞后