如何在SAS中使用保留语句来填充缺失数据?

how to use retain statement in SAS to populate missing data?

我有一个数据集,其中包含给定人员的多行数据,但只有该人员信息的第一行包含他们的姓名。该人数据的其余行缺少名称字段。我想我可以使用保留语句来填充名称,但我尝试的任何方法都不起作用。

这是我正在使用的数据集结构的示例:

    data test;
    input id $ value ;
    datalines;
    Bob 100
    .   200
    .   300
    Jim 475
    .   250
    .   300
    ;
    run;

我认为问题是技术上 id 在这些行中没有丢失,它等于 .,即使在使用 input 语句读取数据行时你得到空 id. 试试这个:

data test;
  input id $ value;

  /*store not empty ID in different retained variable*/
  retain current_id;
  if not missing(id) then current_id=id;
  else id=current_id;

datalines;
Bob 100
.   200
.   300
Jim 475
.   250
.   300
;
run;