2016-03-08 60 views
0

我写了一个宏这需要多个数据集和变量与数据集共同使用PROC频率产生一个频率表,如下所示:PDF宏观

%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

您可以将代码夹在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;