其实我是想为下面这段代码创建一个宏,所以在proc sql中,我不需要分别创建两个不同的代码,因为它是从proc导入的,并在proc sql中创建两个数据集。
任何帮助将是非常感激:)
%macro import(market);
FILENAME REFFILE "PLANNING\BASE_PORTFOLIO\BS_PORT/Test/&market..csv";
PROC IMPORT DATAFILE=REFFILE DBMS=CSV OUT=&market.
(KEEP= a b c)
REPLACE;
/*GETNAMES=YES;*/
RUN;
%mend import;
%import (InputFile1);
%import (InputFile2);
PROC SQL;
CREATE TABLE Outfile1 AS
SELECT a,b,c
FROM &market. t1 /*INPUT FILE READ VM*/
GROUP BY a,b,c,
QUIT;
PROC SQL;
CREATE TABLE Outfile2 AS
SELECT a,b,c
FROM &market. t1 /*INPUT FILE READ VM*/
GROUP BY a,b,c,
QUIT;
market
是一个本地宏变量,只存在于宏本身。添加一个 out
宏的参数,并将你的 sql 语句放在宏中。
%macro import(market, out);
FILENAME REFFILE "PLANNING\BASE_PORTFOLIO\BS_PORT/Test/&market..csv";
PROC IMPORT DATAFILE=REFFILE DBMS=CSV OUT=&market. (KEEP= a b c)
REPLACE;
GETNAMES=YES;
RUN;
PROC SQL; CREATE TABLE &out. AS
SELECT a,b,c
FROM &market. t1
;
quit;
%mend import;
%import (InputFile1, Outfile1);
%import (InputFile2, Outfile2);