sas - 滞后于帐户 ID?
sas - lag by acct id?
不确定我是否需要为此使用延迟。但这是我想做的。
这是我的数据...
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 排序。对于每个帐户,我想采用第一种类型(基于 sort_order)并将其复制到该帐户的每一行。例如,acct 111111 的第一个类型是 "standard"。我希望对 acct 111111 的每个观察都具有 "standard" 作为它的类型。
我尝试执行以下延迟操作,但效果不佳...
data want;
set have;
by acct;
want = lag(type);
if first.acct then want = type;
run;
您可以使用保留语句将每个值复制到下一个观察值。
Data want;
set have;
by accnt;
retain want;
if first.accnt then want = type;
run;
不确定我是否需要为此使用延迟。但这是我想做的。
这是我的数据...
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 排序。对于每个帐户,我想采用第一种类型(基于 sort_order)并将其复制到该帐户的每一行。例如,acct 111111 的第一个类型是 "standard"。我希望对 acct 111111 的每个观察都具有 "standard" 作为它的类型。
我尝试执行以下延迟操作,但效果不佳...
data want;
set have;
by acct;
want = lag(type);
if first.acct then want = type;
run;
您可以使用保留语句将每个值复制到下一个观察值。
Data want;
set have;
by accnt;
retain want;
if first.accnt then want = type;
run;