我有兴趣阅读文件夹 C:\Users 中的每个 SAS 数据集,并在这些 SAS 数据集中的每一个上创建 proc 单变量的 pdf 输出。也就是说,如果我在 C:\Users 中有 50 个数据集,我想要 50 个 pdf 文件。
我无法指定 pdf 的名称以及它应该去哪里。以下是我的代码:
filename DIRLIST pipe 'dir "C:\Users\*.sas7bdat" ';
data dirlist;
infile dirlist lrecl=200 truncover;
input line $200.;
if input(substr(line,1,10), ?? mmddyy10.) = . then delete;
length file_name $ 150;
file_name=scan(scan(line,-1," "),1,".");
keep file_name;
data _null_;
set dirlist end=end;
count+1;
call symput('read'||left(count),left(trim(file_name)));
if end then call symput('max',count);
run;
options mprint symbolgen;
%macro stack;
%do i=1 %to &max;
data _null_;
call symput('pdfname'||left(count),cat("C:\Users\",&&read&i,".pdf"));
run;
ods pdf file=&&pdfname&i;
proc univariate data = &&read&i noprint;
run;
ods pdf close;
%end;
%mend stack;
%stack;
我收到一个错误,突出显示“C:\Users\”中的“:”,它说
错误 22-322:语法错误,期待以下之一:;,锚,作者,背景,基础,正文,书签,书签,书签列表,关闭,颜色,列,压缩,内容,CSSSTYLE,显示,DPI,文件, FONTSCALE, GFOOTNOTE, GTITLE, HOST, KEYWORDS, 布局, NAMED_DEST, NEWFILE, NOBACKGROUND, NOBOOKMARKGEN, NOBOOKMARKLIST, NOCOLOR, NOCONTENTS, NOGFOOTNOTE, NOGTITLE, NOPDFNOTE, NOTOC, PACKAGE, PCL, PDF, PDFMARK, PDFNOTE, PDFTOC, 打印机, PS,渲染、SAS、SGE、STARTPAGE、样式、主题、文本、标题、制服。
错误 200-322:符号无法识别,将被忽略。
我也收到一个错误,上面写着
错误:符号变量名称 PDFNAME。只能包含字母、数字和下划线。