drop语句如何在场景后面工作?

时间:2014-07-15 06:58:32

标签: sas

data _null_ ;
set sashelp.cars ;

markup=invoice+msrp;

drop invoice msrp ;

run;

在数据步骤的编译阶段 PDV根据数据集中的所有sas变量初始化 然后在PDV中再添加一列 但是在drop语句中它从PDV中删除了两列,即(invoice,msrp) 那么如何在执行阶段计算使用已经删除的列值的标记变量的值?

1 个答案:

答案 0 :(得分:0)

drop语句影响向其生成的任何数据集写出的变量,标记这些变量不被写出(类似地,keep以相反的方式影响 - 仅标记列出的变量要写出来,而不是剩下的变量)。在操作期间,这两种操作都不会对PDV的内容产生任何影响;它只会影响发送到结果数据集的内容。

在数据步骤执行期间还有很多其他变量可用但未写出。使用put _all_;查看它们。其中包括_N_first.语句生成的last.by变量,临时数组变量,错误检查变量等。