Double PROC TRANSPOSE.
data have;
input subject ModA1_na ModA1_no ModA1_yes ModA2_na ModA2_no ModA2_yes;
datalines;
1 1 0 0 0 0 1
2 0 1 0 1 0 0
3 0 0 1 1 0 0
4 0 1 0 0 0 1
;
run;
proc transpose data=have out=temp(where=(col1=1));
by subject;
run;
data temp1;
set temp;
name=scan(_name_,1,'_');
value=scan(_name_,-1,'_');
run;
proc transpose data=temp1 out=want;
by subject;
id name;
var value;
run;
... View more