特定の条件の下で別のプロシージャ表が実行されるコードを記述したいと思います。問題はマクロ内のどこかにあります。変更がなければ、すべてうまくいった。 コードのアイデアはかなりシンプルですが、私がこれまでに作成したことは初めてです。データの値xに応じてmakro異なるマクロが実行されます。マクロ内で変数をどのように定義するかはわかりません。マクロがプロシージャ表にある
data makro;
set number;
if number < 20 then x=1;
else x=2;
run;
proc format;
value temp 70- HIGH='red';
run;
PROC SQL;
CREATE TABLE Stat_for_&cel AS
SELECT distinct t1.&zmienna,
t1.&cel,
t2.number,
(COUNT(t1.cid)) AS ILE
FROM zrodlo.abt_app t1 left join ile_zmiennych t2 on t1.&zmienna=t2.&zmienna where t1.&zmienna not is missing
GROUP BY t1.&zmienna,
t1.&cel
ORDER BY t1.&zmienna DESC;
QUIT;
%macro tabelka1(Statystyka_dla_cel,&ILE,&cel,&zmienna);
proc format;
value temp 70- HIGH='red';
run;
PROC TABULATE
DATA= &&Stat_for_&cel format=commax10.2 ;
VAR &&ILE;
CLASS &&zmienna/ MISSING;
CLASS &&cel/ MISSING;
TABLE
/* Row Dimension */
&&cel,
/* Column Dimension */
&&ILE* ColPctSum* &&zmienna*[style=[background=temp.]];
RUN;
%mend tabelka1;
data makro_2;
set makro;
if x=1 then call execute ('%tabelka1');
run;
EDIT:答えではないので「回答」から情報を追加しました。
コードはそのように動作するはずです。 & Celと& zmiennaは、私がproc tabulate手続きで使いたい変数であり、コードの始めに手動で定義されています。私は 'number'が<であるときにマクロを1回だけ実行したいと思います。次のいくつかのステップでは、proc形式のデータを準備し、後でプロシージャ表のデータとして使用するテーブル 'Stat_for_ & cel'を作成します。
主な問題は%macro tabelka1の内部です。マクロ内で変数&セルと& zmiennaをどのように実装するべきかわかりません。
残念ながら、あなたの質問は、正確にあなたが助けを求めていることを理解するのに十分ではありません。 – Reeza
サンプルの入出力データが役立ちます。 MAKROにX = 1の条件を満たす複数の観測結果がある場合、マクロを複数回実行しますか?あるいは、X = 1の観測値があれば、1回だけ実行しますか?あるいは、すべての観測値がX = 1である場合に限りますか? – Tom
マクロを書く方法の例を次に示します。コードの最後にマクロを実行するサンプルコードがあります。コメントと使用方法のパラメータリストに注意してください。 – Reeza