我有几个数据库,每个地理变量一个,我想将其添加到最后。我正在对它们执行一些数据步骤。由于我有大型数据库,因此当我第一次调用每个表时,我只选择我需要的变量。但在其中一个变量始终等于 0 的表中,该变量不在表中。
因此,当我在 for 循环中选择我的 (keep=var) 时,如果变量存在,它会正常工作,但在其他情况下会产生错误,因此这些表将被忽略。
%do i=1 to 10 ;
data temp;
set area_i(keep= var1 var2);
run;
proc append base=want data=temp force;
run;
%end;
有没有简单的方法来解决这个问题?
最佳答案
事实上,我找到了一个解决方案:DKRICOND(或 DKROCOND)选项指定在处理 DROP=、KEEP 期间输入(或输出)数据集中分别缺少变量时报告的错误检测级别=,或 RENAME= 数据集选项。
选项为DKRICOND=ERROR |警告 |警告|现在警告 |没有警告,所以你只需挥手即可设置
dkricond=warn
/*your program, in my case :*/
%do i=1 to 10 ;
data temp;
set area_i(keep= var1 var2);
run;
proc append base=want data=temp force;
run;
%end;
dkricond=error /* the standard value, probably better to set it back after/ */
关于SAS : keep if exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26651343/