proc sql; create table new as select a.*, a.p/b.sum as c from test as a left join (select time, sum(p) as sum from test group by time) as b on a.time = b.time; quit;
proc sort data = new; by time; run;
proc transpose data = new out = new1(drop = _name_); by time; var c; id code; run;
proc sql; create table new as select a.*, a.p/b.sum as c from test as a left join (select time, sum(p) as sum from test group by time) as b on a.time = b.time; quit;
proc sort data = new; by time; run;
proc transpose data = new out = new1(drop = _name_); by time; var c; id code; run;