What have you tried?
The problem can be solved by using DOW-loops, other ways exist, of course, using multiple steps.
data want_dow;
if 0 then set have; /* maintain variable order */
freq = 0;
oi = 0;
ft = 0;
do _n_ = 1 by 1 until(last.clusterid);
set have;
by clusterid;
freq = freq + 1;
ft = ft + ifn(item_type = 'FT', score, 0);
oi = oi + ifn(item_type = 'OI', score, 0);
end;
if oi > 0 then sum = oi;
else sum = ft;
do _n_ = 1 by 1 until(last.clusterid);
set have;
by clusterid;
output;
end;
drop ft oi;
run;
... View more