1

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

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;

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

为了扩展要求 - 我无法更新原始仪器定义,因为它是从生产环境继承的。另外 - 我不希望在第二个仪器语句中硬编码原始仪器变量,以防原始环境发生变化。

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

4

1 回答 1

1

到了那里 - 有一点帮助!在不使用风险维度 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;
于 2013-01-24T18:51:54.120 回答