-1
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”(在表格部分中使用)。我BY ALL byVar已经尝试过(这不起作用)。感谢帮助!

4

2 回答 2

1

简单回答是不。如果您想要所有数据,请不要使用 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;
于 2019-10-31T13:08:43.120 回答
1

没有这样的选择。

你可以:

  • 不带BY, 或
  • 将数据堆叠在自身上,将 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 字符

于 2019-10-31T13:09:08.120 回答