2016-02-12 46 views
0

我具有由id变量和对于每个时间周期(每周)不同值中的一个特定的字符串变量标识的面板数据集定义的变量。并非每个身份证都在每周都有代表(新的可能会逐渐消失)。如果面板数据取值一次

我创建了一个虚拟时,这个变量包含一个特定术语,但它只是在捕捉一个星期一次出场。我想有是每个ID都有特定的虚拟指示项是否包含在字符串变量中至少一周的发生。所以如果在第34周的时候id x包含这个词,我想在其他所有星期都有一个假的,那就显示一个“1”,因为这个词一旦被包含为id x

我试过格式化为xtset并通过F.更换,但如预期,没有工作。

回答

1

我认为以下是你想要的,因为如果字符串包含该项,并且(我假设)否则为0,您已经创建了term变量设置为1。

by id (time), sort: egen newterm = max(term) 
replace term = newterm 
drop newterm 

by id (time), sort: ...命令将单独运行egen每个id。该egen会发现的term每个id的最大值,所以newterm将为1,如果任何term是1

+0

'bysort ID(术语):代替术语=术语[_N]'似乎是本的降低。 –

+1

同意了,但后来我会被'排序ID time'遵循它把它在熟悉的顺序(或至少这是我熟悉的面板数据的顺序)。 – 2016-02-14 01:22:47

+0

谢谢!我想我理解这个逻辑。据我了解,如果不是每个(时间)都包含每一个(id)作为观察值,那么这也应该起作用。 – user1783547