WindowsのSAS 9.4でEnterpriseガイド7.12を使用して、SAS proc freqの結果をExcelファイル(xlsx)にエクスポートしようとしました。 次のコード例:(以下コピーペーストに切り捨て、及びFREQ行はおおよそ平行移動値をラベル):そう等PROG当たり4行で、結果ビューアに予想通りODS Excelで誤ったSAS freqテーブル出力
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テーブルを出力します
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計算を伴う4つのセルは、各progに対して1つのセルと行にマージされます。
このhttp://support.sas.com/kb/32/115.htmlは私の問題と関連しているようですが、提案されているクロスリストソリューションは、Excelでも必要な出力を与えません。 アイデアありがとう!
'.xls'の代わりに' .xlsx'拡張子を使用してはいけませんか? – Tom
修正しました。ありがとうございます。これは以前の試みからのものです。しかし、出力はxlsxでは変化しません。 –