Как использовать PROC TRANSPOSE в SAS (с примерами)


Вы можете использовать PROC TRANSPOSE в SAS для быстрого переноса набора данных из длинного формата в широкий формат .

Эта функция использует следующий базовый синтаксис:

proc transpose data =long_data out =wide_data;
 by var1;
 id var2;
 var var3;
run ;

куда:

  • by : переменная для размещения вдоль строк
  • id : переменная для размещения вдоль столбцов
  • var : переменная, значения которой помещаются в набор данных.

В следующем примере показано, как использовать PROC TRANSPOSE на практике.

Пример: как использовать PROC TRANSPOSE в SAS

Предположим, у нас есть следующий набор данных в длинном формате в SAS:

/\*create dataset in long format\*/
data long_data;
 input team $ variable $ value;
 datalines ;
A Points 88
A Assists 12
A Rebounds 22
B Points 91
B Assists 17
B Rebounds 28
C Points 99
C Assists 24
C Rebounds 30
D Points 94
D Assists 28
D Rebounds 31
;
run ;

/\*view dataset\*/
proc print data =long_data; 

Мы можем использовать PROC TRANSPOSE для преобразования этого набора данных из длинного формата в широкий формат:

/\*create new dataset in wide format\*/
proc transpose data =long_data out =wide_data;
 by team;
 id variable;
 var value;
run ;

/\*view wide data\*/
proc print data =wide_data; 

Обратите внимание, что этот набор данных содержит ту же информацию, что и предыдущий набор данных, но просто отображается в расширенном формате.

По умолчанию SAS создает переменную _NAME_ , которая показывает, какая переменная используется для значений в наборе данных.

Не стесняйтесь использовать оператор DROP , чтобы удалить эту переменную при использовании PROC TRANSPOSE :

/\*create new dataset in wide format\*/
proc transpose data =long_data out =wide_data( drop =_name_);
 by team;
 id variable;
 var value;
run ;

/\*view wide data\*/
proc print data =wide_data; 

Обратите внимание, что переменная _NAME_ была удалена из набора данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как использовать сводку процедур в SAS
Как использовать Proc Tabulate в SAS
Как создать частотные таблицы в SAS