如何使用ODS Excel在SAS中垂直堆叠表?

时间:2019-03-08 22:18:19

标签: excel sas crosstab ods

我正在使用Excel ODS标签集将一系列的交叉表从SAS 9.3导出到Excel。

我写的语法如下:

%include 'C:\Users\MyName\Documents\excltags.tpl';
ods tagsets.excelxp file = "M:\Assess\1718\PARTIC_3-8.xml"

proc sort data = assess_elem;
   by accommodations_ny participation_ny district;
run;

proc freq data = assess_elem
   by accommodations_ny participation_ny district;
   tables grade*proficiency / crosslist nocum nocol;
run;

ods tagsets.excelxp close;

变量为:

  • accommodations_ny:字母数字,不适用
  • participation_ny:字母数字,不适用
  • 地区:字母数字,103个地区名称
  • 等级:数字,3-8
  • 熟练程度:数字,0/1

上面的语法为103个区中的每个区创建了一个这样的表:

have 103 separate tables

我想拥有的更像是

want 1 stacked table

2 个答案:

答案 0 :(得分:1)

使用标签集选项OPTIONS(SHEET_INTERVAL="Proc")

ods tagsets.excelxp 
  file=...
  style=...
  options(doc="all" sheet_interval="Proc")   /* <--- your magic --- */
;

DOC="ALL"选项将在日志中显示ExcelXP标签集文档。

答案 1 :(得分:0)

在TABLE语句中,您不仅限于两种方式,特别是如果您使用LIST选项而不是CROSSLIST。

这是使用SASHELP.CARS的快速示例

grid

它创建一个像这样的表:

enter image description here

这不会给您最左边的未重复列,如果您愿意,PROC TABULATE可以让您更好地控制输出或将其推送到表并使用PROC REPORT。