首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SAS子串合并

SAS子串合并
EN

Stack Overflow用户
提问于 2019-07-12 00:12:04
回答 3查看 173关注 0票数 0

我想我知道如何做这个问题的所有部分,我只是在把它们放在一起时遇到了问题(除了一个小问题之外)。

我有两个数据集。一个叫"old_id“,一个叫"new_id”。旧的"ID“是7个字符(9个字符,包括连字符...示例: EX-123-45)。新的ID格式为9个字符(11个字符,包括连字符...示例: 88EX-123-45)。有一些old_ids被转换为new_ids,但前面添加了88或55。所有其他新的id前面都有22,我需要避免这些,因为它们有重复的id作为"old_id“,但前面有22。

我想要做的是能够将"old_ids“的信息与"new_ids”匹配,这是旧id的新id (lol)。

我知道我可以用

代码语言:javascript
复制
data ID_5;
set new_id;
ID5 = substr(right(id),2);
run;

这就去掉了前导数字,我可以在上面进行匹配。有了这两个文件,我就没有办法找回前导变量了(据我所知)。如果new_id中"ID“的最后9个字符与old_id匹配,我可以编写一条if语句来匹配吗?如果new_id中ID的前导字符= 88或55。

我所拥有的数据的外观以及我想要的最终结果的示例

代码语言:javascript
复制
data for old_id.. this also contains 22 overrides (only about 20 though)

location ProductID    destination 
1        EX-123-45    724
1        EX-12A-B3    724      /* not all old ids have an override*/
5        EX-ABC-12    515
5        EX-ABC-14    953
7        22EX-ZYX-12  007
7        22EX-LMN-12  056

new_id文件

代码语言:javascript
复制
location ID          destination
1        22EX-123-45  894
1        55EX-123-45  785
5        22EX-987-45  999
5        88EX-ABC-14  881
7        22EX-ZYX-12  678
7        22EX-LMN-12  254

我希望它看起来是什么样子

代码语言:javascript
复制
location ProductID  destination 
1        22EX-123-45  894
1        55EX-123-45  724  /*old_id overrides destination*/
5        22EX-987-45  999
5        88EX-ABC-14  953  /*old_id overrides destination*/
7        22EX-ZYX-12  007  /*overwrites new_id destination*/
7        22EX-LMN-12  056  /*overwrites new_id destination*/

大多数22没有覆盖。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56993364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档