Я использую макрос для циклического обхода файлов на основе имен и извлечения данных, который отлично работает в большинстве случаев, однако время от времени я сталкиваюсь с
ERROR: BY variables are not properly sorted on data set CQ.CQM_20141113.
где CQM_20141113 - файл, из которого я извлекаю данные. Фактически мой макрос проходит через CQ.CQM_2014:
и работает до 2014 года. Из-за этой единственной ошибки файл не создается.
Я использую представление шага данных, чтобы «инициализировать» данные, а затем на следующем шаге вызвать представление шага данных (пример кода с сокращенными условиями где):
%let taq_ds = CQ.CQM_2014:;
data _v_&tables / view=_v_&tables;
set &taq_ds;
by sym_root date time_m; *<= added by statement
format sym_root date time_m;
where sym_root = &stock;
run;
data xtemp2_&stockfiname (keep = sym_root year date iprice);
retain sym_root year date iprice;
set _v_&tables;
by sym_root date time_m;
/* some conditions */
run;
Когда я вижу ошибку в файле журнала и снова запускаю файл, он работает (иногда мне нужно несколько попыток).
Я думал о сортировке процедур, но как это сделать при использовании пошагового просмотра данных?
Обратите внимание, что cqm-файлы очень большие (что также может быть причиной проблемы).
edit: taq_ds
- это не один файл, а несколько файлов, имена которых начинаются с CQM_2014
, т. Е. CQM_20140101, CQM_20140102 и т. Д.