Using a SQL:
proc sql;
create table want as
select
l.*,
r.col1_2,
r.col2_2
from
have l
left join
( select id, col1 as col1_2, col2 as col2_2
from have
group by id, year
having max(mon)=mon
) r
on l.id=r.id
order by id, year, mon
;
quit;
... View more