我试图抑制HTML输出,并得到PROC PRINT
只输出到CSV,但ODS HTML Close
似乎不工作。抑制SAS中的HTML输出
我的代码是:
ODS HTML close;
ODS CSV file="\\..output folder..\filename.csv";
proc print data=test;
run;
ODS CSV close;
ODS HTML;
我试图抑制HTML输出,并得到PROC PRINT
只输出到CSV,但ODS HTML Close
似乎不工作。抑制SAS中的HTML输出
我的代码是:
ODS HTML close;
ODS CSV file="\\..output folder..\filename.csv";
proc print data=test;
run;
ODS CSV close;
ODS HTML;
你的方法似乎有点奇怪,为什么诉诸于ods csv? SAS有一个进程导出过程:
proc export data=test outfile="\\..output folder..\filename.csv" dbms=CSV replace;
run;
可以进一步配置有不同的分隔符,没有标题等:http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000393174.htm
编辑 在回答您的评论:我看到两种方式围绕导致您无法尝试进行导出的问题。
第一种方法是将validvarname设置为ANY,这使您在选择变量名称时有很大的自由度。例如: -
options validvarname=ANY;
data test;
'Column Header Text I Want'n=1; output;
'Column Header Text I Want'n=5; output;
run;
proc export data=test outfile="\\..output folder..\filename.csv" dbms=CSV replace;
run;
就个人而言,我不是上述方法的粉丝,因为我发现它会导致更难阅读的代码时,你再也不用为变量的一些命名规则。
第二种方法 - 我更喜欢 - 使用您想要的文本标记变量,并将标签选项放在proc导出文件上。例如: -
data test;
label variable_name='Column Header Text I want';
variable_name=1; output;
variable_name=5; output;
run;
proc export data=test outfile="\\..output folder..\filename.csv" dbms=CSV replace LABEL;
run;
注意,有输出一个小的区别:第一种方法会不会把周围的列名引号,而第二种方法将这样做。
最后,同时做一些额外的阅读我自己,我偶然发现了这一点,这可能是帮助你还有:http://www.sascommunity.org/wiki/Create_a_CSV_file_without_column_names/headers_in_row_1#DATA_NULL_with_a_PUT_statement.2C_all_fields_quoted
啊,我也发现了这个问题。结果窗口仍然会显示HTML输出,这将真的减慢程序,因为ODS HTML CLOSE
似乎只影响输出到特定文件,而不是结果窗口。
为了制止这种情况,我应该使用ODS RESULTS OFF;
来代替。
ODS RESULTS OFF;
ODS CSV file="\\..output folder..\filename.csv";
proc print data=test;
run;
ODS CSV close;
编辑:看来ODS RESULTS
不能随意开启和关闭,以使只有某些PROC PRINT
语句生成输出。这对我来说真的很烦人,所以我要用Shorack的PROC EXPORT
方法。
这是不正确的。我经常使用ODS HTML CLOSE;关闭默认的html输出。你确定你不是在谈论目的地(“输出”标签)吗? – Joe
我在企业指南中使用ODS TAGSETS.EXELXP时遇到了一些困难,因为在同一台服务器上,它比批处理需要更长的时间。 (对于有很多变量的输出...不是每个TAGSET输出)我怀疑这是由于也写入结果窗口。我刚刚用RESULTS OFF(结果关闭)尝试了它,它似乎更快(并且没有RESULTS选项卡)。 –
嗨,乔。我认为困惑是由于SAS的不同版本。卡罗来纳州和我似乎在使用SAS 9.3及以上版本。在9.2及以下版本中,LISTING目的地是指“输出”窗口。在9.3和更高版本中(我使用EG),“输出”窗口显示一个HTML输出,并且LISTING目标默认关闭。在这种情况下,ODS RESULTS OFF似乎是禁用输出窗口的正确命令。对此的更长时间的讨论如下:http://support.sas.com/resources/papers/proceedings12/250-2012.pdf –
我一直在尝试了一整天,终于得到了我。我想从结果查看器中压制的东西就在这里(以及宏的末尾)。我在结果观众想和现在所谓的在最后的一宏结果... Brubumski
ODS HTML close; * bsk;
ods results off; * bsk;
ods csvall file="&file1";
proc print data=tr_outds noobs; run;
ods csvall close; * bsk;
ods results on; * bsk;
ODS HTML; * bsk;
%OdsOn1(outds,outds2,tr_outds, file1, file2); * bsk;
%mend process_input_data_10_10;
%macro OdsOn1(outds,outds2,tr_outds, file1, file2);
proc freq data=outds;tables Group_nm/missing;run;
proc freq data=outds2;tables case_id/missing;run;
proc print data=tr_outds(obs=10) noobs; run;* bsk;
ods csvall file="&file2";
proc print data=cases noobs; run;
ods csvall close;
%mend OdsOn1;
您运行的是什么版本的SAS的? – Joe