我有一个变量,如果ID发生了变化,它会显示0,和。如果它从未改变的话。我按照ID以升序排列数据集,并根据更改后的变量以降序排列。例如:

我想标记发生更改的ID。所以我需要一个看起来像这样的表:

我试图通过对last.ID使用first.ID来使用do until语句,但它不起作用。
发布于 2021-10-31 04:08:36
只需使用RETAIN和FIRST。正在处理中。
data want;
set have;
by id descending change ;
if first.id then do;
if change=0 then flag='Y';
else flag='N';
end;
retain flag;
run;发布于 2021-10-30 20:26:04
** Select all IDs with any change. Keep only one record per ID (the NODUPKEY option). **;
proc sort data=have (where=(change=0)) out=ids_with_change (keep=id) nodupkey; by id;
** Assign FLAG = Y if any change, else N **;
data want;
merge have (in=in1)
ids_with_change (in=in2)
;
by id;
select (in2);
when (0) flag = 'N';
when (1) flag = 'Y';
end;
run;https://stackoverflow.com/questions/69781446
复制相似问题