Просто используйте PROC TRANSPOSE.
proc transpose data=have out=want ;
by id;
run;
Автоматическая переменная _NAME_
будет иметь исходное имя переменной, а значения будут находиться в переменной с именем COL1
.Вы можете использовать опции в операторе PROC TRANSPOSE, чтобы изменить имена по умолчанию.
proc transpose name=GroupedColumn prefix=Value out=want;
Обратите внимание, что к имени все равно будет добавлено 1
для первого наблюдения для каждого идентификатора.Если у вас есть несколько наблюдений на один идентификатор, вы также получите VALUE2, VALUE3 и т. Д.
Или используйте параметр набора данных rename=
в выходном наборе данных, чтобы изменить имена новых переменных.
proc transpose name=GroupedColumn out=want(rename=(col1=Value));