全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1062 2
2015-05-12
悬赏 50 个论坛币 未解决
想问各位一个问题呵,不知道有没有好的可行的方法。

就是例如我一个hash table中有3个key:a,s和d,有一个值:v。
我现在想把这个table中的v值find到另一张大表中。

常规情况直接 rc = h.find(); 就可以了,不过我现在merge的规则打算这样:

先按照a来做key进行find,find不到了;
再按照a和s做key进行find,还是find不到了;
最后按3个key做最后一次index。

目前我自己可用的就是建三张table,分别 find 3次;可是我还是希望能够有直接的方法。
类似于:h.definekey('a','s','d') & h.find(key:a,key:s);

谢谢

我理想的就是这样:
复制代码
在want表在have中查找时,我能保证每一组keys对应的情况都是唯一的。

目前用的办法是利用%do + %sysfunc( byte( &i. + 65 构造了三张表,做逐步的查找;若是能一张表就完成该多好。

其实我这个例子中,在want里做一个:(a,s,d) => (a,s,.) => (a,.,.)的循环查找也行;不过总感觉没建立三个表来的放心。
例如我have表中的第一个情况变成了:1 . 777 123那也就出问题了,(1 . .)是找不到的,但是(1)就能找到。
二维码

扫码加我 拉你入群

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

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

全部回复
2015-5-12 10:41:57
建3张hash表,三张hash表的key分别为a,a和s,a和s和d
二维码

扫码加我 拉你入群

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

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

2015-5-15 14:22:55
自己顶下,多希望能这样定义一个表:
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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