Различные метки для переменных, разделенных по переменной в отчете pro c - PullRequest
2 голосов
/ 13 июля 2020

Мне интересно, можно ли создавать уникальные метки в отчете pro c для каждого столбца, созданного под переменной. Например, скажем, у меня есть следующие данные:

data report;
    input ARM GRADE1 GRADE2 TOTAL N;
    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;

Здесь у меня есть 2 руки, с подсчетом каждой оценки и затем общей суммой. Я также включил N - количество пациентов в группе. Я хотел бы использовать proc report с ARM в качестве поперечной переменной, например:

proc report data=report;
  column ARM, (GRADE1 GRADE2 TOTAL);
  define ARM / across;
run;

Но я хотел бы каким-то образом сделать так, чтобы столбцы Total отображались как Total (N = 2) и Total (N = 3) под ARM = 1 / ARM = 2 соответственно. Это возможно? Или есть более простой способ настроить мои данные, чтобы я мог sh это сделать?

1 Ответ

1 голос
/ 13 июля 2020

Метод 1

Вы можете сообщить количество и сумму, сложив их в подчиненное измерение под итогом. Не совсем тот результат, который желает вопрошающий, но простой и легкий.

proc report data=report;
  column ARM, (GRADE1 GRADE2 TOTAL,(N SUM));
  define ARM / across;
run;

Результат
enter image description here


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;
...