data _null_ ;
set sashelp.cars ;
markup=invoice+msrp;
drop invoice msrp ;
run;
在数据步骤的编译阶段 PDV根据数据集中的所有sas变量初始化 然后在PDV中再添加一列 但是在drop语句中它从PDV中删除了两列,即(invoice,msrp) 那么如何在执行阶段计算使用已经删除的列值的标记变量的值?
答案 0 :(得分:0)
drop
语句影响向其生成的任何数据集写出的变量,标记这些变量不被写出(类似地,keep
以相反的方式影响 - 仅标记列出的变量要写出来,而不是剩下的变量)。在操作期间,这两种操作都不会对PDV的内容产生任何影响;它只会影响发送到结果数据集的内容。
在数据步骤执行期间还有很多其他变量可用但未写出。使用put _all_;
查看它们。其中包括_N_
,first.
语句生成的last.
和by
变量,临时数组变量,错误检查变量等。