我编写了一个宏,它采用多个数据集和这些数据集共有的变量,并使用proc freq生成频率表,如下所示:
%macro f(input= , vars= );
%let n_d=%sysfunc(countw(&input));
%do i = 1 %to &n_d;
%let dataset = %scan(&input, &i);
%let n=%sysfunc(countw(&vars));
%do j = 1 %to &n;
%let values = %scan(&vars, &j);
title "Frequency of &dataset and &values";
proc freq data = &dataset;
tables &values/nocum;
run;
%end;
%end;
%mend;
我使用的是UNIX SAS,由于某些网络问题,我的SAS版本无法访问HTML输出。
我想为每个频率表创建一个pdf输出,并将其存储在单个pdf或多个pdf中(不太特别)。请帮忙!!
答案 0 :(得分:1)
您可以将代码夹在ODS PDF file=''
和ods pdf close
之间。放置代码的位置决定了您是获得单个还是多个文件。
例如,要生成单个文件,请将其放在最外面的循环中:
%macro f(input= , vars= );
ods pdf file="myoutout.pdf" style=meadow;
%let n_d=%sysfunc(countw(&input));
%do i = 1 %to &n_d;
%let dataset = %scan(&input, &i);
%let n=%sysfunc(countw(&vars));
%do j = 1 %to &n;
%let values = %scan(&vars, &j);
title "Frequency of &dataset and &values";
proc freq data = &dataset;
tables &values/nocum;
run;
%end;
%end;
ods pdf close;
%mend;