我有一个带有重复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'
这有什么简单的解决方案吗?
答案 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;