See Maxim 19.
I have a strong suspicion that you simply suffer from a bad dataset structure.
data olddata;
N = _N_;
input promis_pa_scale1 promis_pa_scale2 promis_pa_scale3 promis_pa_scale4 promis_pa_scale5;
datalines;
1 2 3 4 5
99 6 7 99 0
;
proc transpose data=olddata out=long (rename=(col1=promis_pa_scale));
by N;
var promis_pa_scale:;
run;
data want;
set long;
number = input(substr(_name_,16),10.);
if promis_pa_scale = 99 then promis_pa_scale = .;
drop _name_;
run;
N is a stand-in for whatever variable(s) you have that uniquely identify each row of the original dataset.
... View more