Stata:如果存在观察,则循环

时间:2015-08-29 18:38:52

标签: find stata

我有以下形式的数据集:

vars: 
year, firm, executive

data:
2002, initech, steve
2002, microtech, john
2003, initech, mike
2003, microtech, john

我想添加一个新的变量“stickaround”,表明某位高管是否在明年仍与他的公司合作。对于我的数据,我希望创建的值为:

0
1
0 or missing (both fine)
0 or missing (both fine)

关于我最好怎么做的任何想法?

我正在考虑循环所有观察 - 但我如何检查下一年是否有同一位执行官的条目?

1 个答案:

答案 0 :(得分:1)

尝试:

bysort firm (year): gen sticksaround = executive == executive[_n+1]

E.g

clear
input  year str15 firm str5 executive
2002 "initech" "steve"
2002 "microtech" "john"
2003 "initech" "mike"
2003 "microtech" "john"
end

bysort firm (year): gen sticksaround = executive == executive[_n+1]

li

或者,如果您需要比较(例如)2002年至2003年,而 2002年至2004年如果缺少2003年,请使用tsset并尝试(注意)您需要encode firmexecutive):

gen sticksaround = executive == F.executive

有关详细信息,请参阅help byhelp tsset