- data raw(index=(code_date=(code date)));
- input code date r;
- datalines;
- 1 1 0.1
- 1 1 0.2
- 1 2 0.3
- 1 2 0.4
- 2 1 -0.5
- 2 1 0.5
- 2 2 0.6
- 2 2 0.4
- ;
- data out1(drop=r);
- length code date r_sum r_mean rr 8.;
- rr=1;
- do _n_=1 by 1 until(last.date);
- set raw;
- by code date;
- r_sum=sum(r_sum,r);
- rr=r*rr;
- end;
- r_mean=r_sum/_n_;
- run;
- proc sql;
- create table out2 as
- select code, date, sum(r) as r_sum, mean(r) as r_mean,
- min(sign(r))*exp(sum(log(abs(r)))) as rr
- from raw
- group by code, date;
- quit;