proc附加意外行为

时间:2017-06-27 11:39:54

标签: sas append

我执行以下代码:

data temp1;
  set sashelp.class;
  table=1;
run;

data temp2;
  set sashelp.class;
  table=2;
run;

proc append base=temp1(drop=sex) data=temp2 force;
run;

我以为sex将从temp1中删除。因此,sex缺失,它也将从temp2中删除,结果集不包含列sex

然而,我对实际结果感到恼火: enter image description here

为什么sex填充table=1table=2为空?

1 个答案:

答案 0 :(得分:3)

正如@data null 所提到的,当使用proc附加时,基础数据集不会被更改。这是使用proc附加的主要原因 - 它不需要通过'基本数据集,只需将数据附加到结尾。

在这个(相当特殊的)情况下,sex变量被视为已删除,因此后续追加不会写入/可见。

另外(再次感谢@data null )这里有一条来自日志中警告的线索。作为最佳实践,人们应该始终致力于编写没有ERROR或警告的代码。