我正在使用宏来循环基于名称的文件并提取数据,这在大多数情况下都可以正常工作,但是我有时会遇到
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;
当我通过日志文件看到错误并再次运行该文件时,它就可以工作了(有时我需要一些试验)。
我在考虑 proc 排序,但是在使用数据步骤视图时如何做到这一点?请注意 cqm 文件非常大(这也可能是问题的根源)。
编辑:taq_ds
不是单个文件,而是贯穿多个名称以 开头的文件CQM_2014
,即 CQM_20140101、CQM_20140102 等。