イベントが発生してから(ここではインジケーター変数で表されますpos
)、指定された数のリードとラグ(ここでは3)までの期間(ここでは年)を測定したいと思います。
次のコードは機能しますが、ハックっぽく、基本的なものが欠けているようです。組み込み関数またはより優れたロジックを利用する、より堅牢なソリューションはありますか?私は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)
}