尝试将SAS "proc“结果导出到Excel文件(xlsx),使用企业指南7.12和windows上的SAS 9.4。以下代码示例:
ODS EXCEL
file='C:\Download\example.xlsx'
STYLE=HtmlBlue
OPTIONS ( sheet_interval="none" sheet_name="Results" );
data example;
input ins_cd$ 1-2 decl_aatrim $ 4-8 prog $ 10-13 compt $ 15-18;
cards;
02 20153 7646 XC12
02 20153 7646 AB02
02 20153 7646 CC13
02 20153 9999
02 20153 7595 PS03
02 20153 7595 PS04
02 20153 6080 XC12
02 20153 6080 XC15
02 20153 6080 CC18
02 20153 6080 DC08
;
proc sort data=example;
by ins_cd decl_aatrim prog compt;
run;
data example2;
set example;
by ins_cd decl_aatrim prog compt;
if first.prog=1 then do;
test=first.prog;
rank=1;
retain rank 1;
end;
else rank=rank+1;
run;
proc freq data=example2;
tables prog*compt;
run;
ods EXCEL close;如结果查看器中所期望的那样输出freq表,每个进程有4行如下所示:(截断以减少复制粘贴,并粗略翻译freq行标签值):
compt
AB02 CC13 CC18 [...]
prog
6080 Freq 0 0 1 1 0 0 1 1
Pct 0.00 0.00 11.11 11.11 0.00 0.00 11.11 11.11
row pct 0.00 0.00 25.00 25.00 0.00 0.00 25.00 25.00
col.pct 0.00 0.00 100.00 100.00 0.00 0.00 50.00 100.00
7595 Freq 0 0 0 0 0 [...]
[...]但是,当ods生成的xlsx文件在Excel中打开时,freq表如下所示:
prog compt
Freq
Pct
row pct
col.pct AB02 CC13 CC18 DC08 PS03 PS04 XC12 XC15 Total
6080 0 0 1 1
0.00 0 11.11 [...]
0.00 0.00 25.00
0.00 0.00 100.00
7595 0
0.00 [...]计算freq的四个单元格被合并为一个单元格和每个进程的行。
这个http://support.sas.com/kb/32/115.html似乎与我的问题有关,但是建议的交叉列表解决方案也没有在Excel中提供想要的输出。有什么想法吗?谢谢!
发布于 2016-04-15 14:02:08
这是由PROC FREQ的工作方式引起的,ODS解决方案(您所称的结果查看器)没有什么不同。请注意,它有:
<td class="r t stacked_cell data"><table width="100%" border="0" cellpadding="7" cellspacing="0">
<tr>
<td class="r t data top_stacked_value">1</td>
</tr>
<tr>
<td class="r t data bottom_stacked_value">11.11</td>
</tr>
</table></td>在每个单元格内,一个主表单元格在其中有一个迷你表,其中包含freq/rowpct/colpct/汇总(或者在上面的情况下,在底部标头上有两个元素)。
你可以用多种方法解决这个问题。正如Reeza在另一个答案中所指出的,一种选择是使用PROC TABULATE。
另一种选择是通过PROC TEMPLATE编写您自己的表模板;毕竟,PROC FREQ的交叉表就是这样完成的;您可以看看他们是如何做到的,并且可能会改变它。
第三种方法是对输出进行后置处理;由于生成的表拥有所需的所有数据,而不是行,所以可以轻松地编写VBA例程,将格式更改为所需的格式。
发布于 2016-04-14 22:16:19
如果你可以用Proc表格代替。你对你的桌子和外表有更多的控制。
https://stackoverflow.com/questions/36631616
复制相似问题