"ALL"-BY 的选项(SAS PROC TABULATE)
"ALL"-Option for BY (SAS PROC TABULATE)
ODS EXCEL FILE="/mypoath/myfile.xlsx" options(
frozen_headers="3"
sheet_name="#byval1");
PROC TABULATE data=out;
BY byVariable;
CLASS varA varB;
TABLES varA, varB;
RUN;
ODS EXCEL CLOSE;
上面的代码创建了一个具有不同 sheet 的 excel 文件。变量byVariable
的每个值都有一个sheet。有没有办法创建一个额外的 sheet "ALL",其中包含 byVariable
的所有值的结果?我的意思是类似于 "ALL"(在表格部分中使用)。我已经尝试了 BY ALL byVar
(这不起作用)。
感谢您的帮助!
简单的答案是否定的。如果您想要所有数据,请不要使用 BY 语句。
ODS EXCEL FILE="/mypoath/myfile.xlsx" options(frozen_headers="3");
ODS EXCEL options(sheet_name="ALL");
PROC TABULATE data=out;
CLASS varA varB;
TABLES varA, varB;
RUN;
ODS EXCEL options(sheet_name="#byval1");
PROC TABULATE data=out;
BY byVariable;
CLASS varA varB;
TABLES varA, varB;
RUN;
ODS EXCEL CLOSE;
没有这个选项。
您可以:
- 在没有
BY
或 的情况下重新运行报告
- 堆叠 自身的数据将 by 变量修改为
ALL
- 这样它就高于所有存在的 by 值。
data stacked / view=stacked;
set
have
have (in=stackflag)
;
if stackflag then do;
byvar = 'A0'x || 'ALL'; * A0 forces value to be 'after' other original byVar values;
end
run;
proc tabulate data=stacked;
by byvar;
…
注意:'A0'x
是硬 space ASCII 字符
ODS EXCEL FILE="/mypoath/myfile.xlsx" options(
frozen_headers="3"
sheet_name="#byval1");
PROC TABULATE data=out;
BY byVariable;
CLASS varA varB;
TABLES varA, varB;
RUN;
ODS EXCEL CLOSE;
上面的代码创建了一个具有不同 sheet 的 excel 文件。变量byVariable
的每个值都有一个sheet。有没有办法创建一个额外的 sheet "ALL",其中包含 byVariable
的所有值的结果?我的意思是类似于 "ALL"(在表格部分中使用)。我已经尝试了 BY ALL byVar
(这不起作用)。
感谢您的帮助!
简单的答案是否定的。如果您想要所有数据,请不要使用 BY 语句。
ODS EXCEL FILE="/mypoath/myfile.xlsx" options(frozen_headers="3");
ODS EXCEL options(sheet_name="ALL");
PROC TABULATE data=out;
CLASS varA varB;
TABLES varA, varB;
RUN;
ODS EXCEL options(sheet_name="#byval1");
PROC TABULATE data=out;
BY byVariable;
CLASS varA varB;
TABLES varA, varB;
RUN;
ODS EXCEL CLOSE;
没有这个选项。
您可以:
- 在没有
BY
或 的情况下重新运行报告
- 堆叠 自身的数据将 by 变量修改为
ALL
- 这样它就高于所有存在的 by 值。
data stacked / view=stacked;
set
have
have (in=stackflag)
;
if stackflag then do;
byvar = 'A0'x || 'ALL'; * A0 forces value to be 'after' other original byVar values;
end
run;
proc tabulate data=stacked;
by byvar;
…
注意:'A0'x
是硬 space ASCII 字符