2013-05-28 18 views
1

我的輸入數據集看起來如下:要找到最高級別變量之間2 ID在SAS屬性

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 -- 

我需要建立,只有那些藥(這藥所有屬性)的數據集誰做不再有父母和額外的列(CHD_DRUG_CD),其中包含最低級別的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 

回答

2

親子關係在文獻中比較常見,你應該能夠找到大量的例子。下面是一個開始的地方:

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

的基本概念是,你需要遍歷數據集中查找每個父母的孩子。您可以通過創建自己的迭代器,使用POINT =(如在鏈接的文件中)或DOW循環來做到這一點,也可以使用其他技術(如哈希表)來完成此操作。哈希迭代器可能是最快的解決方案,儘管這是最複雜的理解和編碼。然後,當你找到你的孩子時,你可以確定你找到了哪一個(例如,在一個數組中,就像在論文中一樣)並將循環返回到開頭以查找下一個(或者,沒有找到的時候退出)。

+0

感謝喬的回覆,但你能給我一個例子,它會清除它更多.. – user2426972

+1

請按照我發佈的鏈接。我不會爲你寫代碼,除非你有更具體的問題和一些工作證據。 – Joe

+0

就我個人而言,我發現哈希表更直觀,然後使用'POINT ='。如果你不熟悉SAS中的哈希表,那麼值得研究,因爲它們是非常靈活和強大的工具。好的選項列表Joe ... –

相關問題