Процедура SAS для создания новых столбцов на основе значений переменных - PullRequest
1 голос
/ 08 мая 2020

Мне нужно создать таблицу ТОП-10 с историей по месяцам, например:

enter image description here

Проблема в том, что у меня есть только "расплавленные" данные:

enter image description here

Существует ли процедура SAS для создания новых столбцов в наборе данных на основе значений переменных, как в моем примере?

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Ваши "расплавленные" данные представлены в категориальной форме, которая заблокирована и готова к загрузке для отчета Pro c TABULATE.

Пример:

data have;
input date yymmdd10. treatment: $10. count:;
format date yymmdd10.;
datalines;
2020-01-31 lolipops       5
2020-01-31 chocolate      4
2020-01-31 cakes          3
2020-01-31 cookies        2
2019-01-31 lolipops       2
2019-01-31 chocolate      3
2019-01-31 cakes          4
2019-01-31 cookies        5
2018-01-31 lolipops       3
2018-01-31 chocolate      4
2018-01-31 cakes          5
2018-01-31 cookies        6
;

ods html file='top10.html' style=plateau;

proc tabulate data=have;
  class date / descending;
  class treatment / order=freq;
  var count;
  table treatment='', date='' * count='' * sum='' * f=6.
  / box='Treat'
  ;
run;

ods html close;

Report

enter image description here

0 голосов
/ 08 мая 2020

PROC TRANSPOSE

proc sort data=have;
    by type descending date;
run;

proc transpose data=have 
               out=want(drop=_NAME_)
               ;
    by type;
    id date;
    var total;
run;
...