data test1;
set test;
by id;
prev_date=lag(servicedate);
if not first.id and intck('month',prev_date,servicedate,'c')>=6
then newdate=date;
format newdate mmddyy10.;
run;
Use the INTCK function to determine how many months have elapsed between the two dates.
I note, as did @andreas_lds that your word description does not match the output you say you want.
--
Paige Miller