首页 > 解决方案 > 我如何删除重复的观察结果但保留 SAS 中信息最多的行

问题描述

我有一个包含 170 列和 2000 行的数据集。许多观察结果是完全相同的或类似的。我的数据格式如下:

   A          B        C      D  
 Entry 1   Florida     .     54
 Entry 1      .        .     54
 Entry 1   Florida     .     54
 Entry 1   Florida    New     .
 Entry 1   Florida    New    54

您会注意到,A 列总是被填充。我想对这些进行重复数据删除,以便我只返回

    A         B        C       D
  Entry 1   Florida    New       54

关于如何在 SAS 中执行此操作的任何建议?

谢谢!

标签: sasduplicates

解决方案


这将为 A 的每个级别提供最后一个非缺失值。

data have;
   input (A  B  C)(&$) D;
   cards; 
 Entry 1   Florida     .     54
 Entry 1      .        .     54
 Entry 1   Florida     .     54
 Entry 1   Florida    New     .
 Entry 1   Florida    New    54
 ;;;;
   run;
proc print;
   run;
data want;
   update have(obs=0) have;
   by a;
   run;
proc print;
   run;

在此处输入图像描述


推荐阅读