sas 宏:参数是文件名中的一个词

sas macro: argument to be a word in filename

我在特定文件夹中有类似的文件。我需要为每个文件 运行 相同的程序。所以我想到了使用宏。但是我遇到了一个问题。

    %macro xyz(cityname);                                                                   *IMPORTING FILE;                                                                                                                         
    proc import datafile='G:\Interns\Shiyas\'&cityname'.csv'                                                                    
    out=out.datafile                                                                                                                         
    dbms=csv replace ;                                                                                                                       
    guessingrows=200;     

/* PROGRAM */

PROC EXPORT DATA =out.hsi_area  OUTFILE = 'G:\Interns\Shiyas\SAS\Output csv files\'&cityname'\Area.csv';                                  
PROC EXPORT DATA =out.hsi_age  OUTFILE = 'G:\Interns\Shiyas\SAS\Output csv files\'&cityname'\Age.csv';  

%mend; 

%xyz(bangalore);
%xyz(chennai);
%xyz(delhi);
%xyz(kochi);

我知道这不是将宏调用到文件名中的正确格式。但是,如果我可以调用文件名的参数,那将非常有帮助。我们该怎么做?

无法在单引号之间解析宏。

您应该将其重写为

"G:\Interns\Shiyas\&cityname..csv"

需要双句号,因为第一个句号用于宏解析。

看看这个link