フォルダー 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: 構文エラーです。次のいずれかが必要です: ;, ANCHOR, AUTHOR, Background, BASE, BODY, BOOKMARK, BOOKMARKGEN, BOOKMARKLIST, CLOSE, COLOR, COLUMNS, COMPRESS, CONTENTS, CSSSTYLE, DISPLAY, DPI, FILE, FONTSCALE, GFOOTNOTE, GTITLE, HOST, KEYWORDS, LAYOUT, NAMED_DEST, NEWFILE, NOBACKGROUND, NOBOOKMARKGEN, NOBOOKMARKLIST, NOCOLOR, NOCONTENTS, NOGFOOTNOTE, NOGTITLE, NOPDFNOTE, NOTOC, PACKAGE, PCL, PDF, PDFMARK, PDFNOTE, PDFTOC, PRINTER, PS, RENDER、SAS、SGE、STARTPAGE、STYLE、SUBJECT、TEXT、TITLE、UNIFORM。
エラー 200-322: 記号が認識されないため、無視されます。
というエラーも表示されます
エラー: シンボリック変数名 PDFNAME。文字、数字、およびアンダースコアのみを含める必要があります。