sas macro:参数是filename中的一个单词

时间:2015-06-15 10:17:59

标签: sas

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

    %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);

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

1 个答案:

答案 0 :(得分:1)

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

您应该将其重写为

“G:\ Interns \ Shiyas \& cityname..csv”

需要双倍期,因为第一个用于宏分辨率。

查看此link