SAS按组识别未按预期工作的单身者

SAS按组识别未按预期工作的单身者,sas,Sas,我正在尝试按组删除某个组中的单件。这是我的代码: proc sort data=have; by ID date; run; data want; set have; by ID date; if first.date and last.date then delete; run; 对我来说,这应该删除所有在同一ID内只有一个日期的条目。但是由于某些原因,没有一个观察结果被允许通过。根据我的数据集,我应该有数千个观察结果被显示。我以前在其他数据集上使用过它,没有

我正在尝试按组删除某个组中的单件。这是我的代码:

proc sort data=have; by ID date; run;
 
data want; 
    set have;
    by ID date;
    if first.date and last.date then delete;
run;

对我来说,这应该删除所有在同一ID内只有一个日期的条目。但是由于某些原因,没有一个观察结果被允许通过。根据我的数据集,我应该有数千个观察结果被显示。我以前在其他数据集上使用过它,没有任何问题。我知道这并不是很多事情,但我是否犯了一些我错过的错误?

你在做什么:

data want; 
    set have;
    by ID date;
    if first.date and last.date then delete;   *if this is the first and last record for that date, then delete it;
run;
你想做什么,我相信:

data want; 
    set have;
    by ID date;
    if first.ID and last.ID then delete;  *if this is the only record for that ID then delete it;
run;
然而,这可能不是您想要的——取决于您的数据。你也有

proc sort nounikey data=have;
  by id;
run;

这将删除任何“唯一”记录。

显示一组4或5个观察结果不起作用的示例。您正在删除ID中的日期只出现一次的观察结果。如果日期不重复,则不会得到任何输出。你想要什么?是否要保留只有一个观察值的ID值?或者可能只有一个不同的日期值?我还要再次检查它是否是日期而不是日期时间,日期时间很容易有很多“相同的日期”,但实际上不是相同的日期时间。如果你不是说“每个ID一条记录”,我就是这么解释的。你们都是对的——我应该使用first.ID和last.ID,而不是date。非常感谢你的帮助!