Я использую макрос для циклического просмотра файлов на основе имен и извлечения данных, который отлично работает в большинстве случаев, однако время от времени я испытываю
ERROR: BY variables are not properly sorted on data set CQ.CQM_20141113.
где CQM_20141113 — это файл, из которого я извлекаю данные. На самом деле мой макрос зацикливается на CQ.CQM_2014:
и работает до 20141113. Из-за этого единственного сбоя файл не создается.
Я использую представление шага данных для «инициализации» данных, а затем на следующем шаге для вызова представления шага данных (пример кода с сокращенными условиями where):
%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-файлы очень большие (что также может быть корнем проблемы).
редактировать: taq_ds
не является одним файлом, а проходит через несколько файлов, имя которых начинается с CQM_2014
, т. е. CQM_20140101, CQM_20140102 и т. д.