不确定我是否需要使用滞后。但这就是我想要做的事情。
以下是我的数据......
acct sort_order type
111111 1 standard
111111 1 standard
111111 2 non-standard
111111 3 other
111111 3 other
222222 2 non-standard
222222 3 other
222222 3 other
这就是我想要的结果......
acct sort_order type want
111111 1 standard standard
111111 1 standard standard
111111 2 non-standard standard
111111 3 other standard
111111 3 other standard
222222 2 non-standard non-standard
222222 3 other non-standard
222222 3 other non-standard
我的数据集按acct和sort_order排序。对于每个acct,我想采用第一种类型(基于sort_order)并将其复制到该acct的每一行。例如,acct 111111具有"标准"作为它的第一种类型。我希望每个111111的观察都有"标准"因为它的类型。
我尝试使用滞后执行以下操作,但它并不能正常工作......
data want;
set have;
by acct;
want = lag(type);
if first.acct then want = type;
run;
答案 0 :(得分:1)
您可以使用retain语句将每个值复制到下一个观察点。
Data want;
set have;
by accnt;
retain want;
if first.accnt then want = type;
run;