全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1722 5
2013-12-25
悬赏 100 个论坛币 已解决
看过论坛很多高手用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都可以我明白、不过要绕路。

谢谢,如果忙的话就请无视,这个也不着急。
祝大家圣诞快乐先~~~

最佳答案

zhengbo8 查看完整内容

对于call missing,详见https://bbs.pinggu.org/thread-2806024-1-1.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-12-25 16:13:55
对于call missing,详见https://bbs.pinggu.org/thread-2806024-1-1.html

复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-25 16:31:51
MERGE这样就行了:
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-26 10:57:02
zhengbo8 发表于 2013-12-25 16:13
对于call missing,详见https://bbs.pinggu.org/thread-2806024-1-1.html
不好意思,我自己加变量的时候,把B的$搞掉了。。
现在没事了。。

我能多问一句话吗?因为我要dummy进去的话,相当于新插入的行,我希望原来的B值不设空,只把新插入的行设空,请问如何修改呢?

谢谢。

例如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 ... ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-26 11:06:40
Tigflanker 发表于 2013-12-26 10:57
我能多问一句话吗?因为我要dummy进去的话,相当于新插入的行,我希望原来的B值不设空,只把新插入的行设 ...
Not sure if this is what you want.
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-2 20:40:41
zhengbo8 发表于 2013-12-25 16:13
对于call missing,详见https://bbs.pinggu.org/thread-2806024-1-1.html
有空的话,请帮我看下这个,谢谢:

https://bbs.pinggu.org/forum.php? ... ;extra=#pid23058065
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群