Как мне вертикально составлять таблицы в SAS, используя ODS Excel? - PullRequest
0 голосов
/ 09 марта 2019

Я экспортирую серию кросс-таблиц из SAS 9.3 в Excel, используя наборы тегов Excel ODS.

Синтаксис, который я написал, выглядит следующим образом:

%include 'C:\Users\MyName\Documents\excltags.tpl';
ods tagsets.excelxp file = "M:\Assess\1718\PARTIC_3-8.xml"

proc sort data = assess_elem;
   by accommodations_ny participation_ny district;
run;

proc freq data = assess_elem
   by accommodations_ny participation_ny district;
   tables grade*proficiency / crosslist nocum nocol;
run;

ods tagsets.excelxp close;

Переменные:

  • Accommodation_ny: буквенно-цифровой, N / Y
  • участие_: буквенно-цифровой, N / Y
  • район: буквенно-цифровой, 103 названия районов
  • класс:числовой, 3-8
  • умение: числовой, 0/1

Синтаксис выше создает такую ​​таблицу для каждого из 103 районов:

иметь 103 отдельных стола

то, что я хотел бы иметь, выглядит примерно так:

хочу 1 стол с накоплением

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Использовать опцию tagset OPTIONS(SHEET_INTERVAL="Proc").

ods tagsets.excelxp 
  file=...
  style=...
  options(doc="all" sheet_interval="Proc")   /* <--- your magic --- */
;

Опция DOC="ALL" покажет документацию набора тегов ExcelXP в журнале.

0 голосов
/ 09 марта 2019

Вы не ограничены двумя способами в операторе TABLE, особенно если вы используете опцию LIST вместо CROSSLIST.

Вот краткий пример использования SASHELP.CARS

proc freq data=sashelp.cars;
table origin*make*cylinders / list;
run;

Itсоздает такую ​​таблицу:

enter image description here

Это не даст вам неповторяющиеся столбцы слева, если вы этого хотите, PROC TABULATE даст вамбольше контроля над выводом или перенести его в таблицу и использовать PROC REPORT.

...