我试图用设定的条件填充变量.
如果变量NUMBER等于.然后使它等于Number的先前值.
data table2;
set table1;
prv_value = lag(number);
if number = . then number = prv_value;
run;
Run Code Online (Sandbox Code Playgroud)
但是,如果一行中有两个值,其中number =.然后是第二次出现的价值.它具有number =的先前值..
我想要的是找到数字不等于的第一个先前出现的事件.并使number的值等于之前的非缺失值.
我的数据的一个例子是:
id number
d10 2
d10 2
d10 3
d10 .
d10 .
Run Code Online (Sandbox Code Playgroud)
应用上面的代码,我会得到:
id number prv_number
d10 2 .
d10 2 2
d10 3 2
d10 3 3
d10 . .
Run Code Online (Sandbox Code Playgroud)
我想要的是:
id number prv_number
d10 2 .
d10 2 2
d10 3 2
d10 3 3
d10 3 .
Run Code Online (Sandbox Code Playgroud)
即如果数字的值为.然后使其等于前一次出现的非缺失值.
在我的数据集中的某些情况下,我可能会:
id number
d10 4
d10 …Run Code Online (Sandbox Code Playgroud)