0
我收到了一個扁平化文件,該文件保留有關重複ID記錄的信息,而不是附加變量,而不是附加記錄。SAS - 比較變量內容和標記變化
例如,下面的數據集:
ResID VarA VarB
XAB2 Red 13
XAB2 Ylw 13
BGH3 Grn 14
FHT1 Prp 13
XAB2 Blu 13
都被拒絕在此:
ResID VarA_1 VarA_2 VarA_3 VarB_1 VarB_2 VarB_3
XAB2 Red Ylw Blu 13 13 13
BGH3 Grn 14
FHT1 Prp 13
正如你所看到的,ID爲「XAB2」相關聯的所有變量被夷爲平地成一個記錄,所以所有的信息都可以保留,但數據集仍然可以作爲一個人級文件來處理。
這很酷。但是現在我需要調和二人之間的差異。
目前我打算寫一系列非常無聊的if/else if語句在數據步驟,如:
if VarA_2 NE " " and VarA_2 EQ VarA_1 then FLAG_VarA_dup = 0;
else if VarA_2 NE " " and VarA_2 NE VarA_1 then FLAG_VarA_dup = 1;
else if VarA_3 NE " " and VarA_3 EQ VarA_2 then FLAG_VarA_dup = 0;
else if VarA_3 NE " " and VarA_3 NE VarA_2 then FLAG_VarA_dup = 1;
/*...etc. for all VarB occurrences, and all other variables in my very wide DS*/
一旦我被標記的變量在其中的DUP住的話我可以比較相關變量並做出關於應該保留或深入研究的決定。但我不禁覺得有一個更優雅或有效的方式來做到這一點。我很想在這裏學習一兩件事。
更好的解決方案的任何建議?
爲避免匹配單詞的部分,需要在TRANWRD()函數調用中爲兩個參數添加分隔符。儘管它的名字TRANWRD()不知道一個詞是什麼。 – Tom
@Tom如果數據中可能有部分詞匹配,這是一個很好的觀點。我現在不打算在答案中解決這個問題,如果你想這樣做,請隨時(在你自己的答案或以上)免費。 – Joe