【发布时间】:2017-03-03 04:22:35
【问题描述】:
我正在尝试修改工作库下的一些数据集(它们的名称遵循一定的顺序,如 data_AXPM061203900_20120105、data_AXPA061204100_20120103、data_AXPA061204100_20120104)。例如,我想删除所有数据集中的变量“price=0”。
我正在使用以下内容创建一个表来识别数据集:
proc sql ;
create table data.mytables as
select *
from dictionary.tables
where libname = 'WORK'
order by memname ;
quit ;
对于下一步,我正在尝试使用宏:
%macro test;
proc sql ;
select count(memname) into: obs from data.mytables;
%let obs=&obs.;
select catx("_", "data", substr(memname, 6, 13), substr(memname,20,27))
into :setname1-:setname&obs.
from data.mytables;
quit;
%do i=1 %to &obs.;
data &&setname&i
set &&setname&i
if bid_price= '.' then delete;
%end;
%mend test;
但是,它完全失败了。谁能给我一些建议?我真的不擅长宏。错误包括:
- 56:无法确定行和列。
- 错误56-185:在选项DatastMtchk = CoreKeywords时,不允许在Data语句中允许设置。检查缺少的分号 DATA 语句,或使用 DATASTMTCHK=NONE。
【问题讨论】: