aolei 发表于 2012-3-7 21:04 
*试一试
use dynass.dta,clear
gen x=max(endyr1,endyr2,endyr3,endyr4,endyr5)
非常感谢帮助
我还有两个问题:
1.用max减begyr1忽略了年份不连续的情况,比如endyr1是1998,begyr2是2003,那么99-02的数据就被凭空造出来了……
2.forvalue过程中的if判断,最后的+1是起什么效果呢?比如时间段是91-93,94-96,97-05.那比如97年,它符合 begyr2(1994)<=1997 & 1997<=endyr2+1(1997),同时也符合begyr3(1997)<=1997 & 1997<=endyr3+1(2006).但我到data editor去看,97确实被分配了gvkey3,结果是对的。这里面是什么原因呢?还望解惑,多谢