-
- /*跟crackman读sas程序http://crackman.net/*/
- data crackman;
- input x y@@;
- datalines;
- 1 2 3 4 5 6 7 8
- ;
- run;
- data crackman;
- set crackman;
- x=x*1.3;
- run;
- data crackman;
- modify crackman;
- x=x*1.3;
- run;
但是SET和MODIFY的差异很大,
SET:需要先从数据集CRACKMAN读取数据,逐条的放在在PDV中,然后按照X=X*1.3来修改PDV中的X值,然后输出到新数据集中,(这里虽然同名,但是依然要开立两个空间,一个原始数据集的存放空间,一个新数据集的存放空间)等所有观测结束之后,删除之前的原始的数据集,也就是首先要产生一个副本。犹如我们在家里整理东西一样,SET就是一开始就要两个房间,先把第一个房间的东西(原始数据集)一个一个的复制到第二个房间里,然后在第二个房间里整东西,整理好了,就把第一个房间的东西全部烧掉,你看到的只是第二个房间的东西。(这里不过是两个房间的名字都是crackman而已)
MODIFY:则是在CRACKMAN的PDV中直接修改,不需要另外输出到第二个数据集中,等于说没有产生副本数据集。犹如在第一个房间里面整理东西,不需要去第二个房间,浪费空间和时间。
但是注意,因为MODIFY是直接在原始数据集上处理,所以有些时候由于异常突然中断正在整理东西,那么可能会造成一些数据的丢失。