Hello, I have a large number of variables identifying some data characteristics (frequency of environmental factors identified), and a total cost variable. I'd like to get average costs for each of the characteristics where that characteristic is not missing. I'm having trouble writing a code that loops through each and creates an average. For the output, I would like a table that lists the average cost (total cost divided by lines where characteristic is not missing) for each characteristic, i.e. average cost where a1 is present, average cost where a2 is present, etc. Thanks in advance for any help! data have; infile datalines; input a1 1. a2 1. a3 1. cost 10.; datalines; 1 . 3 100 4 6 1 200 . 2 1 300 2 . . 400 2 2 2 500; run; *test out sql step; proc sql; create table averages as select avg(cost) as avgcost1 from have where a1 ne . ;quit; * Result is 1200/4=300; *convert to macro; %macro avg(i); proc sql; create table averages as select avg(cost) as avgcost&i from have where a&i ne . ;quit; %mend; %avg(1); *array step using macro; data temp; set have; array a_s {3} a:; do i = 1 to 3; %avg%i; end; run;
... View more