在SAS中重复重复记录的值

时间:2018-04-13 10:53:33

标签: sas

我有一个带有重复ID的数据集,但状态消息仅针对几个id重复。以下示例

 Id           Status
101         Single entry and multiple items
101         Multiple items
101         Single items
101         
101         
501
502       Multiple
502

我想为其他两个Id重复“状态”消息(它可以是其中一个消息)

我想过创建两个包含和不包含'Status'的数据集,然后将它们合并到'Id'

这有什么简单的解决方案吗?

1 个答案:

答案 0 :(得分:4)

我无法理解这是一件合理的事情,但这很容易。您可以创建一个新变量并使用RETAIN。

data want ;
  set have ;
  by id ;
  if first.id then new=status ;
  if not missing(status) then new=status ;
  retain new ;
  rename new=status status=old_status;
run;

或者你可以使用merge来做到这一点。

data want ;
  merge have(drop=status) have(keep=id status where=(not missing(status)));
  by id;
run;