2016-02-12 20 views
0

我具有由id變量和對於每個時間週期(每週)不同值中的一個特定的字符串變量標識的面板數據集定義的變量。並非每個身份證都在每週都有代表(新的可能會逐漸消失)。如果面板數據取值一次

我創建了一個虛擬時,這個變量包含一個特定術語,但它只是在捕捉一個星期一次出場。我想有是每個ID都有特定的虛擬指示項是否包含在字符串變量中至少一週的發生。所以如果在第34周的時候id x包含這個詞,我想在其他所有星期都有一個假的,那就顯示一個「1」,因爲這個詞一旦被包含爲id x

我試過格式化爲xtset並通過F.更換,但如預期,沒有工作。

回答

1

我認爲以下是你想要的,因爲如果字符串包含該項,並且(我假設)否則爲0,您已經創建了term變量設置爲1。

by id (time), sort: egen newterm = max(term) 
replace term = newterm 
drop newterm 

by id (time), sort: ...命令將單獨運行egen每個id。該egen會發現的term每個id的最大值,所以newterm將爲1,如果任何term是1

+0

'bysort ID(術語):代替術語=術語[_N]'似乎是本的降低。 –

+1

同意了,但後來我會被'排序ID time'遵循它把它在熟悉的順序(或至少這是我熟悉的面板數據的順序)。 – 2016-02-14 01:22:47

+0

謝謝!我想我理解這個邏輯。據我瞭解,如果不是每個(時間)都包含每一個(id)作爲觀察值,那麼這也應該起作用。 – user1783547