小编Ell*_*lie的帖子

如何在SAS中查找变量的先前值

我试图用设定的条件填充变量.

如果变量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)

sas lag

4
推荐指数
1
解决办法
4382
查看次数

标签 统计

lag ×1

sas ×1