Метод 1
Вы можете сообщить количество и сумму, сложив их в подчиненное измерение под итогом. Не совсем тот результат, который желает вопрошающий, но простой и легкий.
proc report data=report;
column ARM, (GRADE1 GRADE2 TOTAL,(N SUM));
define ARM / across;
run;
Результат
Technique 2
Output as desired
введите описание изображения здесь
Преобразование на основе шага данных в категориальную форму переупорядочит данные, что позволяет «имя столбца» быть представлено в виде данных. Параметр REPORT
NOCOMPLETECOLS
используется для предотвращения столбцов, не связанных со спецификацией c N = nnn.
Заголовок столбца установлен на ' '
, чтобы скрыть имя столбца, поскольку исходный столбец имя было преобразовано в данные во время транспонирования.
Пример:
data report;
input ARM GRADE1 GRADE2 TOTAL N;
rownum + 1;
datalines;
1 0 1 1 2
1 1 0 1 2
2 1 2 3 3
2 1 1 2 3
2 0 1 1 3
;
run;
* transpose the data, with a special name construct for the total;
data reportT;
set report;
by rownum arm;
length name $40;
name = 'Grade1'; value = Grade1; output;
name = 'Grade2'; value = Grade2; output;
name = cats('Total (n=', n, ')'); value=total; output;
keep arm name value;
run;
ods html file='report.html' style=plateau;
proc report data=reportT NOCOMPLETECOLS;
column arm, name, value;
define arm / across;
define name / ' ' across;
define value / ' ' ;
run;
ods html close;