SAS транспонирует широкий формат в длинный формат

#sas

#sas

Вопрос:

У меня есть набор данных SAS, который мне нужно транспонировать из широкоформатных данных в данные длинного формата, которые у меня есть:

 DATES  Year1   Year2   Year3
Jan      100    200     300
  

Данные, которые я хочу:

 DATES  Year  Income
Jan     1      100
Jan     2       200
Jan     3       300
  

Ответ №1:

В этом сценарии синтаксис для proc transpose довольно прост.

 proc transpose data=have out=want(rename=(_name_=Year col1=Income));
by date;
var year:; * the ':' is a wildcard character;
run;
  

Результирующий вывод:

 Obs    date    Year    Income

 1     Jan     year1      100
 2     Jan     year2      200
 3     Jan     year3      300