An array approach, borrowed examples from LinLin's post: data have; input naics4 $ taxable1-taxable5; cards; 1 20 30 40 50 60 1 25 35 45 55 65 1 30 40 50 60 70 2 20 30 40 50 60 2 25 35 45 55 65 3 30 40 50 60 70 ; run; data want (drop=tax:); do until (last.naics4); set have; by naics4; array tax(*) taxable1-taxable5; array st(*) sum_tax1-sum_tax5; do _n_=1 to dim(tax); st(_n_)+tax(_n_); end; end; output; call missing (of _all_); run; proc print;run; Regards, Haikuo
... View more