Как изменить данные от широкого до длинного

Я хочу изменить столбцы данных в строки

Начальная таблица, как показано ниже

ID1     ID2     ID3     Name
----------------------------
I001    I002    I003    John

Desire Table like

ID      Name
------------
I001    John
I002    John
I003    John

Кто-нибудь может помочь?

Большое спасибо!

2 ответа

Один из способов сделать это - установить массив идентификаторов и выполнить цикл с явным выражением OUTPUT.

data want;
  set have;

  array ids(3) id1-id3;

  do i=1 to dim(ids);
      ID=ids(i);
      OUTPUT;
  end;
run;

Ты можешь использовать PROC TRANSPOSE Убедитесь, что ваши данные отсортированы по NAME

proc transpose data=have out=want(rename=(_name_=ID));
by Name;
run;
Другие вопросы по тегам