SAS - 在数据中复制帐号

SAS - replicating the account numbers across the data

我有这样的数据集:

AcntNum  name  date
100      abc   12/01
         abc2  12/02
         abc3  12/03
101      abc4  12/04
         abc5  12/05
         abc6  12/06

我正在尝试完成以下结果数据集: 结果:

AcntNum  name  date
100      abc   12/01
100      abc2  12/02
100      abc3  12/03
101      abc4  12/04
101      abc5  12/05
101      abc6  12/06

请建议遵循什么方法。

谢谢,

可能有更好的方法,但您可以尝试以下方法:

data raw1;                                                                                                                              
set raw ;                                                                                                                               
retain group;                                                                                                                           
if( _n_ = 1) then group = 0;                                                                                                            
if (acct ne .) then group = group +1;                                                                                                   
run;                                                                                                                                    



data raw2;                                                                                                                              
set raw1;                                                                                                                               
retain acct2;                                                                                                                           
by group;                                                                                                                               
if first.group then acct2 = acct;                                                                                                       
run; 

您需要使用 RETAIN 和另一个变量。这是一种方法。

data want;
  set have;
  retain acntnum2;
  acntnum=coalesce(acntnum,acntnum2);
  acntnum2=acntnum;
run;