If you care about speed ,then use Hash Table. I bet you will like it more. data have ;
input year (name1-name4) ($);
cards;
2011 Abe Sue Bob Joy
2012 Abe Bob Sue Joy
2013 Sue Joy Bob Abe
2014 Bob Abe Joy Sue
2015 Abe Sue Bob Joy
;
run;
data _null_;
if 0 then set have;
declare hash ha(hashexp:20,dataset:'have',ordered:'A');
declare hiter hi('ha');
ha.definekey('year');
ha.definedata('year','name1','name2','name3','name4');
ha.definedone();
do until(done);
done=1; count=0; n=ha.num_items;
rc=hi.first();
_name1=name1;_name2=name2;_name3=name3;_name4=name4;
do while(rc=0);
count+1;
rc=hi.next();
if _name1 eq name1 or _name2 eq name2 or _name3 eq name3 or _name4 eq name4 then do;done=0;k=year;hi.next();leave;end;
_name1=name1;_name2=name2;_name3=name3;_name4=name4;
if n=count+1 then leave;
end;
if done eq 0 then do; rx=ha.remove(key:k); end;
end;
ha.output(dataset:'want');
run;
Ksharp
... View more