我想创建一个unix实用程序,将1行插入sas数据集。运行时,此scipt将要求用户为数据集中的每个变量插入值(优先告诉他变量的类型和长度)。然后它将使用EXPORT命令将这些值传递给SAS,然后SAS将为这些变量创建宏变量并使用'proc sql;插入'将值插入数据集。
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将其附加到原始数据中
答案 0 :(得分:0)
以下是将用户输入的值从UNIX获取到SAS的一种可能方法: