问题是这样的,小弟最近在用modify处理一些大数据,其中涉及到数据集的更新,按照nkwilling版主书中的方法采取了modify语句,但在应用中发现,remove观测后的数据集大小竟然不变!
例如数据集mst有100条观测,我要删除mst数据集中的前50条观测,remove语句如下:
data mst;
do i=1 to 100;
output;
end;
run;
data mst;
modify mst;
if i le 50 then remove;
run;
最终的mst数据集只有50条观测,但他的
大小没有发生变化!!(如果原数据集很大,会更加明显)打开数据集一看,
观测序号不是从1开始,而是从50开始。如果这时我再运行proc append,新增的观测序号也是从101开始,也就是说,前面50条观测被删除了,但是还占着地方!!
翻看了一下help,里面有说道remove有物理和逻辑删除之分,具体和lib的属性有关。我用的lib引擎是v9,应该执行的物理删除,但为什么删不掉呢?
望各位高人解答。