如何将最后一个观察值复制到Stata中面板数据中的其他观察值?

时间:2017-07-13 08:32:49

标签: stata

我列出了不同时期的不同公司。 在研究期间,公司改变了行业。 我希望在我的数据中保留每家公司所有年份的最新行业价值。 有人可以帮我在Stata做这件事吗? 例如:

当前数据

Time    Company Industry
---------------------------
1       A       Agriculture
2       A       Agriculture
3       A       Mining 
1       B       Service sector
2       B       Service sector
3       B       Agriculture
4       B       Agriculture
5       B       Other

所需数据

Time    Company Industry
---------------------------
1       A       Agriculture
2       A       Agriculture
3       A       Agriculture
1       B       Other
2       B       Other
3       B       Other
4       B       Other
5       B       Other

1 个答案:

答案 0 :(得分:0)

您应该使用

安装dataex
ssc install dataex 

获取一个命令,为回答Stata问题的人提供数据示例。否则像你这样的例子需要手术才能使用。

这里的主要设备使用排序,by:和下标来选择每组中的最后一个观察。在by:下,下标_N始终与最后一次观察相关联。

clear 
input Time str1 Company str14 Industry
1       A       "Agriculture"
2       A       "Agriculture"
3       A       "Mining" 
1       B       "Service sector"
2       B       "Service sector"
3       B       "Agriculture"
4       B       "Agriculture"
5       B       "Other"
end 

bysort Company (Time): gen Final = Industry[_N] 

list, sepby(Company) 


     +-----------------------------------------+
     | Time   Company        Industry    Final |
     |-----------------------------------------|
  1. |    1         A      Agriculture  Mining |
  2. |    2         A      Agriculture  Mining |
  3. |    3         A           Mining  Mining |
     |-----------------------------------------|
  4. |    1         B   Service sector   Other |
  5. |    2         B   Service sector   Other |
  6. |    3         B      Agriculture   Other |
  7. |    4         B      Agriculture   Other |
  8. |    5         B            Other   Other |
     +-----------------------------------------+

请参阅by:的帮助以获取介绍;然后是手册条目[D] by;然后它的参考。

我创建了一个新变量,这通常是数据管理的一个更好的主意。