我有一个数据集(请参阅下面的代码以生成示例数据),其中包含有关公司的信息。除了firm_id之外,它还包含有关该公司在特定年份活跃的行业的信息。
[我想找出的是一家公司剩下多少行业,以及某年公司进入了多少行业。
[我知道我可以通过编写一个“循环中的循环”来执行此操作,该循环针对每个观察结果进行检查,并检查在year + 1年是否存在相同的firm_id和行业组合。但是我的数据集很大,因此效率极低。
我也考虑过使用“宽形”的解决方案,但也找不到我的问题的解决方案(当然,这会产生大量变量,而且效率也不高。)]
我感谢任何想法!
clear
input firm_id str6 industry int fyear int
1084 7372 2010
1084 7375 2010
1084 7372 2011
1084 7375 2011
1084 7372 2012
1084 7375 2012
1084 7372 2013
1084 7375 2013
1084 7372 2014
1084 7375 2014
1094 2865 2002
1094 2879 2002
1094 5122 2002
1094 5169 2002
1094 2865 2003
1094 2879 2003
1094 5122 2003
1094 5169 2003
1094 2865 2004
1094 2879 2004
1094 5122 2004
1094 5169 2004
1094 2865 2005
1094 2879 2005
1094 5122 2005
1094 5169 2005
1094 2865 2006
1094 2879 2006
1094 5122 2006
1094 5169 2006
1094 2865 2007
1094 2879 2007
1094 5169 2007
1094 2865 2008
1094 2879 2008
end
我有一个数据集(请参阅下面的代码以生成示例数据),其中包含有关公司的信息。除了firm_id之外,它还包含有关该公司在特定年份活跃的行业的信息。 ...
[如果您尝试针对每家公司与该公司每年进入和退出的行业数量生成一个单一的观察值,我相信以下代码应该有效。变量enter
和leave
分别表示企业在给定观察中是否进入或存在该行业。在数据中使用多年的foreach
循环,然后可以生成指示企业每年进入还是退出的每个变量。