Sas 使用nodupkey保留缺少的值

Sas 使用nodupkey保留缺少的值,sas,Sas,我有一个数据库,其中一些观察结果有标识符,而一些没有。我想创建一个新的数据库,在该数据库中我删除了与ident变量重复的观察值,但要保留ident缺失的观察值 如果我只是执行一个proc sort nodupkey proc sort nodupkey data=have; by ident; run; 然后,它还消除了缺少的值。有没有一种简单的方法可以做到这一点(即不破坏数据集,对一部分进行排序,然后重新组装)删除重复项时,您有两种选择 首先,proc sort上的dupou

我有一个数据库,其中一些观察结果有标识符,而一些没有。我想创建一个新的数据库,在该数据库中我删除了与ident变量重复的观察值,但要保留ident缺失的观察值

如果我只是执行一个proc sort nodupkey

proc sort nodupkey data=have;
    by ident;
    run;

然后,它还消除了缺少的值。有没有一种简单的方法可以做到这一点(即不破坏数据集,对一部分进行排序,然后重新组装)

删除重复项时,您有两种选择

首先,
proc sort
上的
dupout=
会将您的所有副本发送到另一个数据集,如果您想处理它们,您可以。但这是“破坏数据集”的后端版本,可能更快,因为它只破坏较小的部分

更简单的方法是自己进行重复数据消除

proc sort data=have;
  by ident;
run;

data want;
  set have;
  by ident;
  if (first.ident) or missing(ident);
run;
这将保留每个标识的第一条记录,以及任何缺少标识的记录