看过论坛很多高手用HASH,我自己也测试用HASH对比SQL对上百兆的数据进行条件MERGE,速度能快一倍。
我想请问一个问题:我想要用HASH在一个data步内将某个数据集DUMMY完善,这样就不用每次折腾来来去去,也有效率。
例如我有如下数据集:需要考虑两个变量,一个是分组变量U,另一个是用来检测是否完整的变量A,剩下的是杂七杂八的不少变量(不是只有B一个,而是有很多,数值型的、字符型的都有)。
data x;
input u a b $;
cards;
1 5 i
1 2 u
1 3 o
1 1 p
1 7 y
2 5 p
2 3 o
2 8 i
2 2 u
2 7 y
;
run;
需要:我想看看A中的值是否从1到9都有,没有的话就补上。
例如Dummy后的数据集如下:
1 5 i
1 2 u
1 3 o
1 1 p
1 7 y
1 4 (missing)
1 6 (missing)
1 8 (missing)
1 9 (missing)
2 ... ...
目前我打算这样做:
可是结果并不是想要的,另外: if h.find(key:a) then do;b='';output;end; 这句话也只能call missing一个B,如果有很多呢。。
恳请一定用HASH来做,SQL和MERGE都可以我明白、不过要绕路。
谢谢,如果忙的话就请无视,这个也不着急。
祝大家圣诞快乐先~~~