SAS 9.3 マクロ言語のfor inループ( Pythonや R など) に相当するものをしばらく探しています。DO ループは解決策のようですが、私が望むとおりには機能しませんでした。DO ループを使用してデータ ステップでそれを行う方法を確立しましたが、マクロ言語では機能しません。たとえば、データ ステップでは、次のコードが機能しています。
DATA _NULL_;
DO i = 1,3,5,9;
PUT i;
END;
RUN;
そして、期待どおりのログプロンプト:
1
3
5
9
マクロの%DOループで同じことをしようとすると、エラーが発生します。
%MACRO test();
%DO i = 1,2,4,9 ;
%PUT i = &i;
%END;
%MEND;
%test();
ログには次のメッセージが表示されます。
ERROR: Expected %TO not found in %DO statement.
ERROR: A dummy macro will be compiled
私は SAS と stackoverflow にまったく慣れていないので、私の質問があまりにもばかげていないことを願っています。Python と R でこれを行うのは非常に簡単ですが、SAS で行うには簡単な方法が必要です。
助けてくれてありがとう - J. Muller