SAS根据2个不同的变量分组比较字符记录

时间:2016-12-07 14:55:38

标签: sas

我正在尝试根据2个不同的变量(所有变量都有字符格式)找到没有相似分组的记录。

我的变量是appln_id(唯一)earliest_filing_id(分组)docdb_family_id(分组)。该数据集包含大约25,000个不同的appln_id,但只有15446个不同的earliest_filing_id和15755 docdb_family_id。现在你看到了ca.的区别。这两组中有300条记录(可能更多因为分组也可能发生变化)。

现在我想要做的是查看所有情况,这些情况没有类似的分组。这是一个例子:

appln_id      earliest_filing_id  docdb_family_id
10137202      10137202            30449399
10272131      10137202            30449399
10272153      10137202            !!25768424!!

你可以看到最后一个案例不同,应该在我希望创建的列表中。 我试图用Proc比较,一个Call sortc或by + if ...然后编码来解决它,但到目前为止还没有找到一个好的解决方案。 我这么长时间没有使用SAS ......

非常感谢您的帮助!

古拉爵

安妮娜

2 个答案:

答案 0 :(得分:0)

如果我的理解是正确的,您需要选择唯一的docdb_family_id。试试这个:

proc sql;
   select * from yourfile group by docdb_family_id having count(*)=1;
quit;

答案 1 :(得分:0)

听起来您想要使用BY组处理来分配新的组变量。 确保您的数据已排序,然后运行类似的操作以创建新的GROUPID变量。

data want ;
  set have ;
  by EARLIEST_FILING_ID DOCDB_FAMILY_ID ;
  groupid + first.docdb_family_id ;
run;