如何删除SAS数据步骤中的重复项。
data uscpi;
input year month cpi;
datalines;
1990 6 129.9
1990 7 130.4
1990 8 131.6
1990 9 132.7
1991 4 135.2
1991 5 135.6
1991 6 136.0
1991 7 136.2
;
run;
PROC SORT DATA = uscpi OUT = uscpi_dist NODUPKEY;
BY year ;
RUN;
我可以使用proc步骤,但是如何在数据步骤中删除它。提前致谢
答案 0 :(得分:6)
您可以使用first.
&使用last.
处理时由SAS创建的by-group
个自动变量。它们可以更好地控制您认为重复的行。
请阅读手册understand by group processing in a Data Step
data uscpi_dedupedByYear;
set uscpi_sorted;
by year;
if first.year; /*only keep the first occurence of each distinct year. */
/*if last.year; */ /*only keep the last occurence of each distinct year*/
run;
很大程度上取决于您的输入数据集的排序方式。例如:如果您的输入数据集按年份排序&一个月,你使用if first.year;
,然后你可以看到它只保留在任何给定年份的最早月份。但是,如果您的数据集按year & descending month
排序,则if first.year;
会在任何特定年份保留上个月。
此行为明显不同于nodupkey
的工作方式。