我执行以下代码:
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
。
为什么sex
填充table=1
而table=2
为空?
答案 0 :(得分:3)
正如@data null 所提到的,当使用proc附加时,基础数据集不会被更改。这是使用proc附加的主要原因 - 它不需要通过'基本数据集,只需将数据附加到结尾。
在这个(相当特殊的)情况下,sex
变量被视为已删除,因此后续追加不会写入/可见。
另外(再次感谢@data null )这里有一条来自日志中警告的线索。作为最佳实践,人们应该始终致力于编写没有ERROR或警告的代码。