1

我的输入数据集如下所示:

DRUG Table
DRUG_CD PARENT_DRUG_CD
DRG_1   DRG_5
DRG_2   DRG_5
DRG_3   DRG_4
DRG_4   --
DRG_5   DRG_6
DRG_6   --

我需要构建一个数据集,其中仅包含那些不再有父级的 DRUGS(以及此 DRUGS 的所有属性)和一个包含最低级别 DRUG_CD 的额外列(CHD_DRUG_CD)。

Resulting DRUG Table
DRUG_CD CHD_DRUG_CD
DRG_6   DRG_1
DRG_6   DRG_2
DRG_6   DRG_5
DRG_4   DRG_3
4

1 回答 1

2

亲子关系在文献中比较常见,你应该可以找到很多例子。这是一个开始的地方:

http://support.sas.com/kb/25/968.html

基本概念是您需要遍历数据集以找到每个父级的子级。您可以通过创建自己的迭代器、使用 POINT=(如链接的论文中)或 DOW 循环来做到这一点,或者您可以使用其他技术(如哈希表)来做到这一点。哈希迭代器可能是最快的解决方案,尽管理解和编码最复杂。然后当你找到你的孩子时,你确定你找到了哪一个(在一个数组中,例如,如论文中所示)并将循环返回到开头以找到下一个(或者,没有找到就退出)。

于 2013-05-28T04:38:22.167 回答