sungmoo 发表于 2009-8-10 00:15 
*若想求出sheet2中各月与event-month相隔的自然月数(负数表示之前,正数表示之后,0表示同月),只需
use sheet1,clear
ren eventmonth time
append using sheet2
sort id time year
g t=time if year==.
by id: egen x=min(t)
g m=(int(time/100)-int(x/100))*12+mod(time,100)-mod(x,100)
drop t x
keep if year
上述加粗那几段程序迂回实现了merge id using sheet1的工作。
use sheet2,clear
// drop year month
sort id // 用mege id using sheet1, sort,提示出错
merge id using sheet1 // 而先sort后merge的方法则只是警告
keep if _merge == 3
drop _merge
sort id time
g m=(int(time/100)-int(eventmonth/100))*12+mod(time,100)-mod(eventmonth,100) // sungmoo的这种方法就无需time和eventmonth为%tm格式,妙极!