我已经挣扎了一段时间并且不确定这是否完全可能(也许宏在数据步骤中无法正确解决......?)
我使用数据步骤将多个文本文件输入到一个SAS数据集中。同时,我想根据数据中的不同的参数将它们再次拆分。
理想情况下,我想在输出库名称中使用宏变量,但宏变量不会解决:
警告:未解析显式符号引用LVEL。
并且相同的数据输出到所有文件(就好像输出和测试语句不在那里)。
数据如下:
TIME LEVEL LAT LON HGT
1586616 1000 90 5 229
代码:
%let lower_bound = 1979;
%let upper_bound = 1981;
%MACRO FILELOOP ;
%DO J = &lower_bound %TO &upper_bound ;
data library.file_1000
library.file_2000
library.file_3000
;
infile ".../hgt&J..txt" delimiter='09'x firstobs=2 obs=5;
input time level lat lon hgt;
// I want to use the level variable to determine the output SAS file;
call symputx ("lvel", level);
%let Test = library_&lvel.;
output &Test;
run;
%END ;
%MEND ;
%FILELOOP ;