我的输入数据集如下所示:
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
答案 0 :(得分:2)
亲子关系在文献中比较常见,你应该能够找到很多例子。这是一个开始的地方:
http://support.sas.com/kb/25/968.html
基本概念是您需要遍历数据集以查找每个父级的子级。您可以通过创建自己的迭代器,使用POINT =(如纸张链接)或DOW循环来执行此操作,或者您可以使用其他技术(如哈希表)执行此操作。 Hash迭代器可能是最快的解决方案,尽管理解和编码最复杂。然后,当您找到您的孩子时,您会识别您找到的孩子(例如,在数组中,如文中所述)并将循环返回到开头以找到下一个(或者,在没有找到的情况下退出)。