2014-12-08 139 views
0

在面板數據集中,我有3個變量:name,weekincome在Stata中創建指示器變量

我想做一個指示變量,表示income爲0的最初幾周。所以說一個人X在前13周有0 income,該指標在前13周內取值1,否則爲0對於人Y的程序相同。

我嘗試過使用組,但我無法得到它的工作。

有什麼建議嗎?

+0

您應該始終顯示代碼嘗試,包括失敗的代碼。許多人不會回答沒有代碼的問題,我們也沒有解釋你誤解的餘地。 – 2014-12-08 08:54:08

回答

2

一種解決方案是

bysort name (week) : gen no_income = sum(income) == 0 

功能sum()產生累積或運行總和。因此,只要income爲0,其累計和也保持爲0。一旦一個人獲得了某種東西,累積的總和就會變成正值。該守則基於推定累積收入不能再次過零,因爲在給定的一週內,income爲負值。爲了排除這種可能性使用合適的額外條件,如

bysort name (week) : gen no_income = sum(income) == 0 & income == 0 

對於具有非常相似的味道問題,請參閱this FAQ。元課是將StataCorp常見問題解答視爲多種資源之一。

+0

感謝您的有用答案。假設我也想標記觀察「收入」恆定超過四周的觀察結果。如何構造這樣的代碼? – Sunv 2014-12-09 20:38:19

+1

這是一個新問題,但要查找不變價值的法術。在http://www.stata-journal.com/sjpdf.html?articlenum=dm0029上討論原理和'ssc inst tsspell'提供的專用命令。 – 2014-12-09 20:49:17

+1

或者,如果您生成累計收入總和,那麼累計總和等於四周前的值是必要的,但並不足夠。等等。 – 2014-12-09 20:50:33