Hello,
I was asked to calculate the sum of var1 through var6 and that per category. But now they want the sum of var5 and the sum of var6 and they want that sum reported in CAT2 and CBT1 respectively.
Is there a more efficient way to carry out that task
see the code below.
data test1;
infile datalines delimiter=',';
input category $ TransType $ var1 var2 var3 var4 var5 var6 ;
datalines;
CAT1, DIR, 100.00, 8.49, 0.08, 1.00, 0.00, 0.00
CAT2, DIR, 200.00, 2.12, 0.08, 1.00, 0.20, 0.02
CAT3, DIR, 800.00, 67.95, 0.08, 1.00, 0.20, 0.02
CAT4, DIR, 100.00, 10.19, 0.08, 1.00, 0.00, 0.00
CAT5, DIR, 700.00, 63.70, 0.08, 1.00, 0.20, 0.02
CBT1, DIR, 50.00, 4.25, 0.08, 1.00, 0.00, 0.00
CBT2, DIR, 300.00, 25.48, 0.08, 1.00, 0.25, 0.02
CBT3, DIR, 900.00, 76.44, 0.08, 1.00, 0.25, 0.02
CBT4, DIR, 100.00, 8.49, 0.08, 1.00, 0.00, 0.00
;
run;
data test1;
format category $8. TransType $8. mjcategory $8. var1 var2 var3 var4 var5 var6 f7.2 ;
set test1;
if substr(category,1,2) eq 'CA' then mjcategory = 'CAT2';
if substr(category,1,2) eq 'CB' then mjcategory = 'CBT1';
run;
proc sql;
create table test2 as
select a.*
,sum(var5) as var7
,sum(var6) as var8
from test1 as a
group by mjcategory;
quit;
Data test2 (drop= var7 var8 mjcategory);
set test2;
if category eq mjcategory then
do;
var5=var7;
var6=var8;
end;
Else
do;
var5=0;
var6=0;
end;
run;
... View more