Stata 从一个范围展开观察,形成一个小组
我目前有一个数据集,如下所示Stata 从一个范围展开观察,形成一个小组,stata,Stata,我目前有一个数据集,如下所示 mnbr uact_id hiredate termdate 9 3709 19510101 20000915 20 9409 20001001 20080601 33 25646 19990201 20000731 mnbr表示工会中给定工人的成员编号uact\u id是他们工作的店铺,hiredate和termdate(给定yyyymmdd)表示他们在店铺的给定日期/uact
mnbr uact_id hiredate termdate
9 3709 19510101 20000915
20 9409 20001001 20080601
33 25646 19990201 20000731
mnbr
表示工会中给定工人的成员编号uact\u id
是他们工作的店铺,hiredate
和termdate
(给定yyyymmdd)表示他们在店铺的给定日期/uact\u id
。我目前正在尝试使用Stata中的expand
命令创建一个面板,以便在hiredate
和termdate
的指标之间,每年对每个成员编号(mnbr
)进行一次观察
i、 理想情况下,它应该是
mnbr uact_id year
9 3709 1951
9 3709 1952
9 3709 1953
9 3709 1954
每年的每个成员编号等 任意假设日期是字符串,我们可以
gen year = real(substr(hiredate, 1, 4))
gen duration = real(substr(termdate, 1, 4)) - year + 1
expand duration
bysort mnbr : replace year = year[_n-1] + 1 if _n > 1
如果日期是数字,特别是整数,那么前两行可以是
gen year = floor(hiredate/10000)
gen duration = floor(termdate/10000) - year + 1
replace
步骤将在中讨论
到目前为止,您的代码是什么?
hiredate
和termdate
是数字还是字符串?看不到代码让人失望。“尝试使用扩展
”总共意味着什么?谢谢,我最初能够确定hiredate和termdate(数据类型很长),但不知道replace命令。首先,我很抱歉没有发布我的代码,您的代码运行得非常好,再次感谢您的帮助。