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;
我有这样的数据集:
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;