Возникла проблема с импортом файла CSV при использовании макропеременной в SAS - PullRequest
0 голосов
/ 28 сентября 2018

Я написал код в Unix SAS для импорта нескольких файлов CSV из текущей папки.Макропеременным присваиваются правильные значения, но соответствующие файлы не импортируются.Я получаю следующее сообщение об ошибке

ОШИБКА: Физический файл не существует, /work/pricepromo/modeler/tolapa01/pawan/&j..csv.ОШИБКА: импорт не выполнен.Подробности смотрите в SAS Log.

Ниже приведен код.

OPTIONS MERROR MPRINT SERROR MLOGIC SYMBOLGEN ;
X ls *.csv > list;

data name    ;
infile 'list' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=1 ;
   informat name_list $9. ;
   format name_list $9. ;
input
            name_list $
;
run;

data name2;
set name;
name_mod=translate(name_list,'','.csv');
run;

proc sql;
select name_mod into :name separated by '*' from name2;
%let count2 = &sqlobs;
quit;


%macro yy;
%do i = 1 %to &count2;
%let j = %scan(&name,&i,*);
proc import out = &j datafile='./&j..csv'
dbms=csv replace;
run;
%end;
%mend;

%yy;

1 Ответ

0 голосов
/ 28 сентября 2018

Попробуйте использовать двойные кавычки

datafile="./&j..csv"

не

datafile='./&j..csv'

При всех этих параметрах это должно быть очевидно при чтении журнала SAS.

...