macros - 循环 SAS 中的 ODS 输出
问题描述
我正在尝试将库中所有输出的比较结果输出到 excel 或 pdf 中。这是我写的
%DO I = 1 %TO &coun;
%LET DT = %SCAN (&DS_LIST., &I., ~);
ods excel file="D:\test.xlsx";
PROC COMPARE BASE = BASE.&DT. COMPARE = COMPARE.&DT. OUTNOEQUAL OUTBASE
OUTCOMP OUT = COMPAREOUT;
RUN
;
ods excel close;
但是它只给了我最后一个数据集输出..这里有什么问题?
解决方案
您还没有显示%END
for%DO
循环。我假设您正在循环内打开和关闭 ODS EXCEL 目标。ODS EXCEL 不会附加到现有文件,因此您只能从列表中的最后一个数据集获取比较输出。试试这个
* open ODS destination;
ods excel file="D:\test.xlsx";
* loop over data sets in DS_LIST, get compare report for each;
%DO I = 1 %TO &coun;
%LET DT = %SCAN (&DS_LIST., &I., ~);
PROC COMPARE BASE = BASE.&DT. COMPARE = COMPARE.&DT. OUTNOEQUAL OUTBASE
OUTCOMP OUT = COMPAREOUT;
RUN;
%END;
* close the ODS destination that contains the output from &coun comparisons;
ods excel close;
推荐阅读
- python - 我如何获得每个 GMM 的概率百分比?
- phpmyadmin - 如何在xampp中更改apache服务器的端口号
- javascript - 添加另一个按钮以关闭 Bootstrap 简单侧边栏
- oracle - 使用 Oracle ojdbc 的 Servicemix
- unit-testing - eq() 匹配器是否可以应用于双精度?
- json - 将 JSON 列表转换为一个记录为列表的表
- ruby-on-rails - Rails - 使用复选框在数据库中存储多个值
- docker - 红帽中的 Jenkins + Artifactory
- vba - 在文本占位符中替换和定位文本
- python - 计算数据框中的实例