如何抑制PROC SURVEYFREQ的输出?ODS多表Excel导出场景
解决PROC SURVEYFREQ输出抑制问题
要彻底抑制PROC SURVEYFREQ的所有非必要输出,可通过以下几种方式调整代码:
临时关闭默认LISTING输出目标
SAS默认会将输出发送到LISTING窗口/文件,即便指定了ODS OUTPUT,关闭LISTING能避免这部分干扰:ods listing close; /* 关闭默认输出渠道 */ proc SURVEYFREQ data= a; tables &var /CL noprint; WEIGHT kalvikt; ods output OneWay=a1; /* 此处无需加noprint,已关闭LISTING */ run; ods listing; /* 后续需要时恢复默认输出 */用ODS SELECT精准锁定输出对象
仅让SAS输出你需要的OneWay对象,其余全部过滤:proc SURVEYFREQ data= a; ods select OneWay; /* 仅保留指定对象输出到ODS OUTPUT */ tables &var /CL noprint; WEIGHT kalvikt; ods output OneWay=a1; run;结合ODS EXCLUDE排除所有无关输出
若不确定具体需排除的对象,直接排除全部,仅保留目标输出:proc SURVEYFREQ data= a; ods exclude all; /* 排除所有默认输出 */ ods select OneWay; /* 仅保留OneWay对象 */ tables &var /CL noprint; WEIGHT kalvikt; ods output OneWay=a1; run;
注意:你之前在ods output后添加的noprint是无效参数,noprint仅适用于PROC步骤或TABLES语句,ODS OUTPUT语句本身不支持该选项。
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

