1) proc sort data=data1 out=data2;
by Reporter Partner Product year; run;
2) proc transpose data=data2 out=data3 prefix=year_;
by Reporter Partner Product;
var year;
run;
3) data data4; set data3;
array year(13) year1_year13; (you may change to the maximum num. of year_1-year_max)
do i=1 to 13;
if year(i+1)=year(i)+1 and year(i+2)^=year(i+1)+1 then var1=1;
else if year(i+1)=year(i)+1 and year(i+2)=year(i+1)+1 and year(i+3)^=year(i+2)+1 then var1=2;
....