我有一個從2006年到2012年的面板數據集。我生成了一個新變量entry
,輸入到一個國家的公司的值爲1。例如,如果一家公司在時間(t)的銷售價值(。)缺失,則其值爲0
,而在(t + 1)時,如果它進入一個國家換句話說,值爲1
。我用這個成功的命令如下:Stata的第一次和最後一次發生
egen firm_id=group(firm country)
by firm_id (year), sort: gen byte entry = ///
sum(inrange(sales, 0,.)) == 1 & sum(inrange(sales[_n - 1],0,.)) == 0
由於我的數據,從2006年開始我排除的觀察這一年的命令:
bysort firm (year) : replace entry = 0 if year == 2006
不過我想是不是具有0個值, 在其進入之後的隨後幾年(例如在t + 2或t + 3)具有缺失值。
我申請退出,但我改變了今年的排列順序相同:
gen nyear = -year
by firm_id (nyear), sort: gen byte exit = ///
sum(inrange(sales, 0,.)) == 1 & sum(inrange(sales[_n - 1],0,.)) == 0
,因爲在我的數據的最後一個觀測一年是2012我排除了這些意見:
bysort firm (year) : replace exit = 0 if year == 2012
再次在這裏,我想要的是,而不是有0個值, 在其後退出(例如在t + 2或t + 3)後的幾年有缺失值。
親愛的尼克,非常感謝這個作品,因此在進入和退出後爲此後的幾年創造了缺失的價值。但是,除此之外,我不希望它在過去的幾年中產生缺失值。例如在你的例子中,考慮到firm_id(1)的變量「isfirst」,我希望2006和2007年的「0」而不是「缺失」。換句話說,其入口前幾年的0值在其進入後的幾年中缺失值。 –
爲學生做簡單的運動!提示:'cond(year
我也通過生成一個新變量來管理這個,但是你的提示要好得多,所以不需要創建另一個變量。非常感謝尼克。我非常感謝你的幫助。 –