Как показала @itzy, proc transpose был создан для этих типов задач реструктуризации данных и, вероятно, вы захотите его использовать.
В интересах полноты, я покажу, как вы можете достичьтот же результат с более ручным подходом, использующим только шаг данных.
data short;
input PATIENT_ID AA BB CC DD EE;
cards;
1 22 33 44 55 66
2 77 88 99 10 11
;
run;
data long(keep= PATIENT_ID GROUP VALUE);
set short;
array vars(*) AA--EE;
do i=1 to dim(vars);
GROUP=vname(vars(i));
VALUE=vars(i);
output;
end;
run;
proc print data=long noobs;run;