我想创建一个 unix 实用程序将 1 行插入 sas 数据集。运行时,此 scipt 将要求用户为数据集中的每个变量插入值(最好告诉他变量的类型和长度)。然后它将使用 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 将其附加到原始数据中