整数演算のみが必要な場合は、%eval を使用するだけで十分です。マクロ変数で浮動小数点演算を実行する必要がある場合は、代わりに %sysevalf を使用する必要があります。
ほとんどのデータ ステップ関数は、次の 2 つの方法のいずれかを使用してマクロ変数に直接適用できます。
1. %function()
2. %sysfunc(function())
最も一般的に使用される関数の多くには、正確に同等のマクロがあり、関数名の前に % を追加するだけで済みます。正確なマクロ同等物を持たない関数は、通常、%sysfunc() 内で呼び出すことにより、マクロ変数を受け入れるようにすることができます。通常、一重引用符で囲まれた文字列を予期するデータ ステップ関数は、引用符を削除しない限り、%sysfunc() を介してマクロ コードで呼び出されると失敗します。例えば
data _null_;
x = rand('uniform');
run;
データ ステップでは問題なく動作しますが、マクロ コードの一部でマクロ変数に同じ値を与えるには、次を使用する必要があります。
%let x = %sysfunc(rand(uniform));
これは、マクロ環境では、SAS がテキスト一様を文字列として解釈するのに対し、データ ステップでは、SAS が引用符で囲まれていないテキストを変数の名前として解釈するためです。