Sas proc报告中按变量拆分的变量的不同标签
我想知道是否有可能在proc报告中为跨变量生成的每个列创建唯一的标签。例如,假设我有以下数据:Sas proc报告中按变量拆分的变量的不同标签,sas,Sas,我想知道是否有可能在proc报告中为跨变量生成的每个列创建唯一的标签。例如,假设我有以下数据: 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; 在这里,我有两个手臂,每个等级的计数和总数。我还包括了N,即每只手臂的患者数量。我想将proc report与ARM一起用作跨变量,如下所示: proc re
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;
在这里,我有两个手臂,每个等级的计数和总数。我还包括了N,即每只手臂的患者数量。我想将proc report
与ARM
一起用作跨变量,如下所示:
proc report data=report;
column ARM, (GRADE1 GRADE2 TOTAL);
define ARM / across;
run;
但是,我想以某种方式使Total列分别显示为ARM=1/ARM=2下的
Total(N=2)
和Total(N=3)
。这可能吗?或者有没有更简单的方法来设置我的数据以便我可以完成这项工作?技术1
您可以通过将计数和总和堆叠在“总计”下的下级维度中来报告计数和总和。不完全是提问者想要的结果,但简单易行
proc report data=report;
column ARM, (GRADE1 GRADE2 TOTAL,(N SUM));
define ARM / across;
run;
输出技术2 按需输出
基于数据步骤的分类形式转换将重新排列数据,以允许“列名”作为数据显示。
REPORT
选项NOCOMPLETECOLS
用于防止与特定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;
这并不完全是我想要的,只是尝试更改列的标签。这是否意味着没有办法做到这一点?