Может кто-нибудь подсказать, почему два приведенных ниже кода имеют разные выходные данные?
У меня есть макрос var FILETYPE, который разрешается в файл // Пропущено первое значение.
%let b=%scan("&filetype",1,",",M);
%put &b;
%let c=%scan("&filetype",2,",",M);
%put &c;
%let d=%scan("&filetype",3,",",M);
%put &d;
%mend;
%tt;`
Iполучить следующий вывод:
SYMBOLGEN: Macro variable FILETYPE resolves to ,File
SYMBOLGEN: Macro variable B resolves to
SYMBOLGEN: Macro variable FILETYPE resolves to ,File
SYMBOLGEN: Macro variable C resolves to
SYMBOLGEN: Macro variable FILETYPE resolves to ,File
SYMBOLGEN: Macro variable D resolves to File
File
Когда макрос var C должен был преобразоваться в File, но его значение все равно NULL, а D получает значение File.
Та же логика в простом шаге данных работает правильно.
data a;
b=scan("&filetype",1,',','M');
c=scan("&filetype",2,',','M');
run;
Output :
b=blank
c=File
Может кто-нибудь подсказать, почему функция SCAN с модификатором M работает нормально на шаге данных, но не в макросе?