Stata 斯塔塔的第一次和最后一次事件

Stata 斯塔塔的第一次和最后一次事件,stata,Stata,我有一个从2006年到2012年的面板数据集。我生成了一个新变量entry,对于进入某个国家/地区的公司,该变量的值为1。例如,如果一家公司在时间(t)的销售额中缺少价值(.),则其价值为0,在时间(t+1),如果它进入一个国家,换句话说,其销售额的价值为1。我为此使用的成功命令如下所示: egen firm_id=group(firm country) by firm_id (year), sort: gen byte entry = /// sum(inrange(sales, 0,.))

我有一个从2006年到2012年的面板数据集。我生成了一个新变量
entry
,对于进入某个国家/地区的公司,该变量的值为1。例如,如果一家公司在时间(t)的销售额中缺少价值(.),则其价值为
0
,在时间(t+1),如果它进入一个国家,换句话说,其销售额的价值为
1
。我为此使用的成功命令如下所示:

egen firm_id=group(firm country)

by firm_id (year), sort: gen byte entry = ///
sum(inrange(sales, 0,.)) == 1  & sum(inrange(sales[_n - 1],0,.)) == 0 
由于我的数据是从2006年开始的,因此我使用以下命令排除了今年的观察结果:

bysort firm (year) : replace entry = 0 if year == 2006
但是我想要的不是0值, 在其输入后的后续年份(如t+2或t+3)缺少值

同样,我申请退出,但我更改了当年的排序顺序:

gen nyear = -year

by firm_id (nyear), sort: gen byte exit = ///
sum(inrange(sales, 0,.)) == 1  & sum(inrange(sales[_n - 1],0,.)) == 0  
由于我的数据中的最后一个观察年是2012年,我排除了这些观察:

bysort firm (year) : replace exit = 0 if year == 2012
这里我想要的不是0值,
在退出后的随后几年内(例如t+2或t+3)缺少值

据我所知,变量
sales
在无时缺失,否则为正

您希望一年的指标是一家公司在一个国家的第一年和最后一年的销售额

我想这会让你受益匪浅。首先,我们需要示例数据

* Example generated by -dataex-. To install: ssc install dataex
clear
input float(firm_id year sales)
1 2006   .
1 2007   .
1 2008  42
1 2009  42
1 2010  42
1 2011   .
1 2012   .
2 2006   .
2 2007 666
2 2008 666
2 2009   .
2 2010   .
2 2011   .
2 2012   .
end
第一个日期和最后一个日期是最小日期和最大日期,以销售为条件

egen first = min(cond(sales < ., year, .)), by(firm_id)
egen last = max(cond(sales < ., year, .)), by(firm_id)

2006年或2012年,我做了任何不同的事情。您可以在
cond()
语法中构建特殊规则

亲爱的Nick,非常感谢这项工作,因此在进入和退出后的随后几年中会产生缺失值。然而,除此之外,我不希望它为其进入的前几年生成缺失的值。例如,在您的示例中,考虑公司id(1)的变量“isfirst”,我希望在2006年和2007年使用“0”而不是“missing”。换言之,其入学前几年的0值结束了其入学后随后几年的缺失值。学生的简单练习!提示:
cond(year
。我也通过生成一个新变量来管理它,但您的提示要好得多,因此无需创建另一个变量。非常感谢,尼克。我真的很感谢你的帮助
generate isfirst = cond(year == first, 1, .)
generate islast = cond(year == last, 1, .)

list, sepby(firm_id)

     +----------------------------------------------------------+
     | firm_id   year   sales   first   last   isfirst   islast |
     |----------------------------------------------------------|
  1. |       1   2006       .    2008   2010         .        . |
  2. |       1   2007       .    2008   2010         .        . |
  3. |       1   2008      42    2008   2010         1        . |
  4. |       1   2009      42    2008   2010         .        . |
  5. |       1   2010      42    2008   2010         .        1 |
  6. |       1   2011       .    2008   2010         .        . |
  7. |       1   2012       .    2008   2010         .        . |
     |----------------------------------------------------------|
  8. |       2   2006       .    2007   2008         .        . |
  9. |       2   2007     666    2007   2008         1        . |
 10. |       2   2008     666    2007   2008         .        1 |
 11. |       2   2009       .    2007   2008         .        . |
 12. |       2   2010       .    2007   2008         .        . |
 13. |       2   2011       .    2007   2008         .        . |
 14. |       2   2012       .    2007   2008         .        . |
     +----------------------------------------------------------+