1
我想測量事件發生以來(這裏用指標變量pos
表示)的時間段(這裏是幾年),直到給定的導聯數和滯後時間這裏有三個)。確定自事件以來的時間段(最多n個前導/滯後)
下面的代碼工作,但似乎hackish,就像我失去了一些基本的東西。是否有更強大的解決方案利用內置函數或更好的邏輯?我在11.2。謝謝!
version 11.2
clear
* generate annual data
set obs 40
generate country = cond(_n <= 20, "USA", "UK")
bysort country: generate year = 1766 + _n
generate pos = 1 if (year == 1776)
* generate years since event (up to three)
encode country, generate(countryn)
xtset countryn year
generate time_to_pos = 0 if (pos == 1)
forvalues i = 1/3 {
replace time_to_pos = `i' if (l`i'.pos == 1)
replace time_to_pos = -1 * `i' if (f`i'.pos == 1)
}
謝謝,尼克。很乾淨。 – 2013-03-08 19:01:21
其實,實現這個我意識到了一個問題。並非每個假人都是1776年,並且因國家(大約30個國家)而異。你認爲有一種方法可以將「if」條件引用到「pos」嗎? – 2013-03-08 19:38:35
將1776概括爲變量名? – 2013-03-09 08:39:10