SAS中的PDF宏

时间:2016-03-08 15:17:27

标签: macros sas

我编写了一个宏,它采用多个数据集和这些数据集共有的变量,并使用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中(不太特别)。请帮忙!!

1 个答案:

答案 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;