SASデータステップコードのこのブロックでは、TEST_TableというSQLクエリからテーブルを設定しています。このテーブルには、PREFIX_1からPREFIX_20というタイトルの列のより大きなセクションを含む複数の列が含まれています。各列はPREFIX_で始まり、1から20まで増加します。
私がやりたいのは、各列を繰り返し循環し、その列の値を分析することです。
以下は私が行おうとしていることの例です。ご覧のとおり、反復ごとに増加する変数を作成し、そのカウント値をチェックしている変数名の一部として使用します。
data TEST_Data;
set TEST_Table;
retain changing_number;
changing_number=1;
do while(changing_number<=20);
if PREFIX_changing_number='BAD_IDENTIFIER' then do;
PREFIX_changing_number='This is a bad part';
end;
end;
run;
SASでこれを行うための最良の方法はどのようになりますか?1から20までの各値を個別にチェックするだけでそれができることを私は知っています。
if PREFIX_1 = 'BAD_IDENTIFIER' then do;
PREFIX_1 = 'This is a bad part';
end;
if PREFIX_2 = ...
しかし、後で40を超える列のセットで同じことを行うので、それは本当に不快です。
アイデア?
解決
data TEST_Data;
set TEST_Table;
array SC $ SC1-SC20;
do i=1 to dim(SC);
if SC{i}='xxx' then do;
SC{i}="bad part";
end;
end;
run;
配列を提案していただきありがとうございます:)