Yeah.That is really not easy. You need create an index variable.
data have;
input gender $ year count;
cards;
F 2011 34
F 2011 34
F 2012 21
F 2012 34
F 2014 4
M 2010 34
M 2011 34
M 2011 45
M 2012 2
M 2012 34
M 2012 34
M 2012 34
;
run;
data have;
set have;
by gender;
if first.gender then n=0;
n+1;
run;
proc sql;
select a.*,count/sum(count) as per,
(select sum(count) from have where gender=a.gender and year=a.year and n le a.n)/sum(count) as cumper
from have as a
group by gender,year
order by gender,year,n;
quit;
... View more