重复值查询相对简单,其实也有很多方法,不过这里仅介绍一种个人认为最简单的方式,即利用proc sort。
通常重复值查询的变量时索引变量,比如个体编号等,其它变量的查询有时并无太大的现实意义,当然有时为了看某变量一共有多少类别,也是有意义的。
假定有数据集a,id表示个体编号,如果要查询id号是否有重复,可以用下面过程:
proc sort nouniquekey out=bb;
by id;
proc print;
run;
选项nouniquekey就是保留重复的观测,这样就可以看出一共有多少个重复观测值。
如果研究者确信id号绝不可能应该有重复,只要有,肯定应该删除,那就可以用下面过程:
proc sort nodupkey out=bb;
by id;
proc print;
run;
选项nodupkey就是保留不重复的观测,所有重复的id号都被删除掉了,仅保留其中一个,这样剩下的数据就是干净的了。
当然还有其它方式,只要有思路,就能想到很多方法,比如先对id排序,然后用lag函数产生新变量,然后比较id与lag(id),也是一种思路,等等。总之,关键是能否想到。绝大多数情况下,只有想不到,没有做不到。