我遇到問題。當ID隨時間變化時,我需要爲另一張桌子創建人行橫道。無論ID有什麼變化,我都需要有第一年的ID。SAS:根據隨時間變化的值進行人行橫道
data have;
input ORIG_ID $ CHANGE_ID $ YEAR
AAA BBB 1990
BBB AAA 1991
PPP ZZZ 1993
ZZZ YYY 1994
YYY ZZZ 1996
TTT MMM 1990
;
**What I want :**
/****OUTPUT****/
CHANGE_ID ORIG_ID
BBB AAA
ZZZ PPP
YYY PPP
MMM TTT
/*My logic so far*/
proc sql;
create table temp as
select CHANGE_ID, ORIG_ID
case
when (CHANGE_ID<ORIG_ID) then cat(CHANGE_ID,ORIG_ID)
when (ORIG_ID<CHANGE_ID) then cat(ORIG_ID,CHANGE_ID)
end as key, year
from dat
order by key,year;
quit;
data final;
retain CHANGE_ID ORIG_ID
set temp;
by key;
if first.key;
run;
/*But this works for id changing for AAA to BBB, may be not*/
讓我知道如果您有任何困惑:
我從來沒有聽說過數據科學或統計方面的人行橫道。您是否在談論審計跟蹤以跟蹤ID值如何改變? –
呵呵:)。這個人行橫道是另一個數據集所需要的,這個數據集隨着時間的推移而發生id變化,有時id會變回原來的值,最壞的情況下id會不斷變化。我們希望將所有更改的ID保留爲第一次出現的位置。你能理解這個嗎? – ammosperros