kst*_*pt3 5 performance report frequency sas title
PROC FREQ我不想在非常大的数据集上执行多个单独的过程,而是通过执行PROC FREQ包含多个TABLE语句的单个过程来提高效率.我们的质量检查流程需要TABLE使用单个语句使用单个TITLE语句简单的表标题,但这可能是多个TABLE语句吗?
以下面的示例数据和代码:
DATA TEST;
INPUT TEMPERATURE HUMIDITY PLATE FORM $12.;
DATALINES;
25 75 1 HOT
30 75 2 COLD
25 45 3 HOT
30 45 4 COLD
25 55 5 HOT
30 55 6 COLD
25 15 7 HOT
30 15 8 COLD
;
RUN;
** SINGLE PASS ON PROC FREQ **;
PROC FREQ DATA = TEST;
TITLE1 "TEMPERATURE FREQS";
TABLE TEMPERATURE / LIST OUT=FREQS_TEMP;
TITLE2 "HUMIDITY FREQS";
TABLE HUMIDITY / LIST OUT=FREQS_HUM;
TITLE3 "PLATE FREQS";
TABLE PLATE / LIST OUT=FREQS_PLATE;
TITLE4 "FORM FREQS";
TABLE FORM / LIST OUT=FREQS_FORM;
RUN;TITLE1;TITLE2;TITLE3;TITLE4;
Run Code Online (Sandbox Code Playgroud)
标题在输出的最顶部而不是每个表堆叠在一起,所以在数据步骤中是否可以这样,或者是否必须创建自定义模板?PROC REPORT自定义频率可能是一个更可行的选择吗?
一种选择是使用proc document. 我认为这与将频率输出到单独的表中,然后分别对这些表进行报告或频率的工作量大致相同,而且不那么混乱。
PROC DOCUMENT允许您编辑输出对象,然后重放它。在您的情况下,您在 freq 中缺少的是表格之间的分页符 - SAS 仅title在页眉上放置了一个,因此您不会在表格之间找到它。我认为 PROC FREQ 也不会在 之前创建任何表run,所以前三个标题语句不会做任何事情(你这样做只是因为你使用了titel1/2/3/4 - 如果你title每次使用,只有第四个会影响)。
您需要先添加分页符,然后添加标题(不幸的是,您没有将它们保留在 PROC FREQ 中,因此您可以将它们从中删除)。所以:
*ODS DOCUMENT creates the DOCUMENT object you will later modify;
ods document name=freqs(write);
** SINGLE PASS ON PROC FREQ **;
PROC FREQ DATA = TEST;
TITLE "TEMPERATURE FREQS";
TABLE TEMPERATURE / LIST OUT=FREQS_TEMP;
TITLE "HUMIDITY FREQS";
TABLE HUMIDITY / LIST OUT=FREQS_HUM;
TITLE "PLATE FREQS";
TABLE PLATE / LIST OUT=FREQS_PLATE;
TITLE "FORM FREQS";
TABLE FORM / LIST OUT=FREQS_FORM;
RUN;
title;
ods document close;
*PROC DOCUMENT is an interactive proc, so it stays active until QUIT;
proc document name=freqs;
*Just a look at what it looks like under the hood - can be removed in production;
list/levels=all;
run;
*Here we create page breaks (OBPAGE command) after each table.;
obpage \Freq#1\Table1#1\OneWayFreqs#1 /after;
obpage \Freq#1\Table2#1\OneWayFreqs#1 /after;
obpage \Freq#1\Table3#1\OneWayFreqs#1 /after;
*Here we add the titles.;
obtitle \Freq#1\Table1#1\OneWayFreqs#1 "TEMPERATURE FREQS";
obtitle \Freq#1\Table2#1\OneWayFreqs#1 "HUMIDITY FREQS";
obtitle \Freq#1\Table3#1\OneWayFreqs#1 "PLATE FREQS";
obtitle \Freq#1\Table4#1\OneWayFreqs#1 "FORM FREQS";
*And here we replay the document with the changes;
replay ^;
run;
quit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9058 次 |
| 最近记录: |