SAS(proc risk) - 工具声明 - 向继承的定义添加变量

时间:2013-01-24 15:53:20

标签: sas

如何将仪器变量添加到现有定义?使用代码?例如:

proc risk;
 environment new = work.Test ;
 declare instvars=(var1 num var, var2 num var, var3 num var);
 instrument MyInst variables = ( var1, var2 ) ;
 environment save;
run;

proc risk;
 environment open= work.Test;
 instrument MyInst variables= ( /* how do I add var3? */);
 environment save;
run;

必须有一个简单的方法!如果不是 - 如何确定原始定义(以编程方式)?

要扩展需求 - 我无法更新原始工具定义,因为它是从生产环境继承的。另外 - 如果原始环境发生变化,我不希望在第二个乐器声明中对原始乐器变量进行硬编码。

我认为可能没有其他方式(除了硬编码),但对想法持开放态度。

1 个答案:

答案 0 :(得分:1)

到那里 - 有一点帮助!如果不使用Risk Dimensions UI或重写仪器语句,唯一的另一种方法是使用WRITETYPES语句创建的数据集。

proc risk;
 environment new = work.Test ;
 declare instvars=(var1 num var, var2 num var, var3 num var);
 instrument MyInst variables = ( var1, var2 ) ;
 writetypes out=temp;
 environment save;
run;

proc sql; 
insert into temp set insttype='MyInst', type='VAR', content='VAR3';

proc sort data=temp; by _all_; run;

proc risk;
 environment open= work.Test;
 readtypes data=temp;
 environment save;
run;