私は、作業ライブラリの下でいくつかのデータセット(その名前はdata_AXPM061203900_20120104、data_AXPM061203900_20120105、data_AXPA061204100_20120103、data_AXPA061204100_20120104などの特定の順序に従います)を変更しようとしています。たとえば、すべてのデータセットで変数 "price = 0"を削除したいとします。それは完全に、しかしSAS - マクロを使用して複数のデータセットを変更するにはどうすればよいですか?
%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;
:、私はマクロを使用しようとしている次のステップのために
proc sql ;
create table data.mytables as
select *
from dictionary.tables
where libname = 'WORK'
order by memname ;
quit ;
:
私は、データセットを識別するために、テーブルを作成するには、以下の使用しています失敗しました。誰も私にいくつかの提案を与えることができますか?私は本当にマクロがうまくいきません。エラーには、次のものが含まれます。
- 56:LINEとCOLUMNは特定できません。
- エラー56-185:DATASTMTCHK = COREKEYWORDSオプションが設定されている場合、DATA文でSETは使用できません。 DATAステートメントの にセミコロンがないかチェックするか、DATASTMTCHK = NONEを使用します。
'SET'ではなく' MODIFY'文はどうですか? – fl0r3k
私はを試しましたが、動作しません –
Neal801