““ ALL”-BY(SAS PROC TABULATE)的选项

问题描述 投票:0回答:2
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;

上面的代码创建具有不同工作表的excel文件。变量byVariable的每个值都有一张纸。有没有一种方法可以创建一个额外的工作表“ ALL”,其中包含byVariable的所有值的结果?我的意思是类似“ ALL”(在TABLES部分中使用)。我已经尝试过BY ALL byVar(不起作用)。感谢您的帮助!

excel sas proc tabulate
2个回答
0
投票

简单的答案是不。如果要获取所有数据,请不要使用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;

0
投票

没有这样的选择。

您可以:

  • 不带BY重新运行报告,或
  • stack本身将by变量修改为ALL的数据-使其高于所有现有的按值。
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是硬空间ASCII字符

© www.soinside.com 2019 - 2024. All rights reserved.