Я побежал следующий код после использования линий передачи данных для ввода данных, которые были указаны в вашем вопросе.
Первый транспонировать данные по ID:
proc sort data=mydata; by id; run;
proc transpose data =mydata out=transposed prefix=number_;
by ID;
var number;
id number;
run;
Следующий шаг только переупорядочиваем имена переменных, то сохранить заявление ничего другого на этом этапе не делать.
data transposed_and_ordered;
retain id _name_ number_1 number_2 number_3 number_4 number_5 number_6;
set transposed;
run;
Два шага выше (наряду с шагом ввода линий передачи данных) дают следующий набор данные transposed_and_ordered:
-------------------------------------------------------------------------------
|ID | NAME | number_1 | number_2 | number_3 | number_4 | number_6 |
-------------------------------------------------------------------------------
|1002 | number | 1 | 2 | | | |
-------------------------------------------------------------------------------
|1003 | number | 1 | 2 |3 |4 |6 |
-------------------------------------------------------------------------------
|1005 | number | 1 | 2 |3 |4 | |
-------------------------------------------------------------------------------
|1007 | number | 1 | | | | |
-------------------------------------------------------------------------------
|1009 | number | 1 | 2 |3 | | |
Пожалуйста, включите код, включая то, что вы пытались до сих пор решить эту проблему. Непосредственный запрос кода не соответствует теме. – Joe