特定の変数が 2000 文字を超える長さとして定義されているデータ セットのグループがあります。私がやりたいことは、これらの変数を識別し、値を保持する新しい変数のセットを作成するマクロを作成することです。
ベースコードでこれを行うと、次のようになります。
data new_dset;
set old_dset:
length colnam1 colnam2 colnam3 2000.;
colnam1 = substr(long_column,1,2000);
colnam2 = substr(long_column,2001,2000);
run;
変数名と長さのリストをマクロ変数のセットとして作成できますが、マクロ変数から新しい変数を作成する方法がわかりません。
私が考えていたのは、次のようになります。
%macro split;
data new_dset;
set old_dset;
%do i = 1%to &num_cols;
if &&collen&i > 2000 then do;
&&colnam&i 1 = substr(&&colnam&i,1,2000);
end;
%en;
run;
%mend;
うまくいかないことはわかっていますが、それが私の考えです。
誰かが私がこれを行う方法を理解するのを手伝ってくれるなら、私はとても感謝しています.
ありがとう
ブライアン