SAS Enterpriseガイドの一部の変数を連結しようとしています。SAS CATXエラー:CATXのヌルパラメータが無効です
%do i = 1 %to 3;
%global farm_&i., apples_&i., pears_&i., cherries_&i., plums_&i.;
%end;
そして、次のよう
id farm apples pears cherries plums
1 'Munich' 'Granny' 'Williams' 'RedDelight'
2 'Amsterdam' 'PinkLady' 'Scrumptious
3 'Moscow' 'Braeburn' 'Williams' 'RedDelight'
は、その後、私はグローバル変数を作成します。私はのようになりますSAS_table
、で始まる
は(pears
のための空の列plums
と空の観察に注意してください。私は次のように上記の表をグローバル変数に格納します:
上記のすべてがスムーズに機能するようです。行うには
concat_1: Munich :: Granny :: Williams :: RedDelight
concat_2: Amsterdam :: PinkLady :: Scrumptious
concat_3: Moscow :: Braeburn :: Williams :: RedDelight
: - 次のステップでは、私は次の出力を(余分な区切り文字は、(「::」)これらのケースのために設定されていない空の値がちょうどスキップされていることに注意してください)を取得するために、個々の変数にしたいですこれは、私は次のコードを使用します。私はこのコードを実行すると
data _NULL_;
%do i = 1 %to 3;
call_symput("concat_&i",catx(" :: ", &&farm_&i., &&apples_&i.., &&pears_&i..,
&&cherries_&i.., &&plums_&i..));
%end;
run;
はしかし、私はエラーを取得する:ここ
ERROR 159-185: Null parameters for CATX are invalid.
私の仮定は、変数の一部を空にすることができますので、SASは不幸なことです値。しかし、どうすればこの問題を解決できますか?私は荷物をめちゃくちゃにしてしまって、ちょうど良い答えを見つけることができないようです。
CATX()では、マクロ変数を引用符で囲む必要があります。今は問題を引き起こしているすべてのnullである変数名を探しています。 – Reeza
Ps catx( '::'、農場の - プラム);最初からうまくいくはずです。 – Reeza
マクロ変数でこの混乱が起こっているのはなぜですか?データステップを使用します。 – Joe