sas データセットに 1 行を挿入する UNIX ユーティリティを作成したいと考えています。実行すると、このスクリプトは、データセット内の各変数に値を挿入するようにユーザーに要求します (できれば、変数の型と長さを伝えます)。次に、EXPORTコマンドを使用してこれらの値をSASに渡し、SASはこれらの変数のマクロ変数を作成し、'proc sql;を使用します。insert into' は値をデータセットに挿入します。
data raw_str;
/* init PDV */
if 0 then
set tracking_data;
/* programmatic structure to enable addressing of vars */
array a_c(*) _character_;
array a_n(*) _numeric_;
run;
raw_str は、追跡データと同じ型と長さの変数になります
proc sql noprint;
select distinct name
into : varlist separated by ' '
from dictionary.columns
where libname='WORK'
and memname='raw_str';
quit;
次に、このリストをunixに渡したいです。そこから、ユーザーにこれらの変数の値を入力するように求め、次にこれらの値を使用してtracking_dataに追加します。
問題は、unix から sas に値を渡し、これらの値のマクロ変数を作成することです。
変数の長さと型をフロント エンドに渡すこともできます。これにより、raw_str データセットの型と長さに一致する値を渡すようにユーザーに指示できます。
proc sql;
insert into raw_str
values (&val1, &val2, &val3...);
quit;
最後に、proc append を使用して元のデータに追加できます