2017-05-04 52 views
0

Calculate industry concentration in Stata based on four biggest numbers产生可变只包括4强的企业与最大的销售

正如我的问题是非常相关的上述以前的帖子,我想生成一个变量只包括了前4名企业与最大的销售和排除休息。换句话说,新的变量只有在给定行业中具有最大销售额的4家公司的价值,而其余的将是“。”。

如果你能帮助我的命令,我将不胜感激。

+0

你做了什么吗? –

+0

非常感谢Nick我解决了这个问题,当然这只适用于前4家公司不会每年更换 –

回答

0

没有数据的例子,没有尝试在代码;但问题很明显。

考虑一下:

webuse grunfeld, clear 
bysort year (invest) : gen largest4 = cond(_n < _N - 3, ., invest) 
sort year invest 
list year largest4 if largest4 < . in 1/40, sepby(year) 

    +-----------------+ 
    | year largest4 | 
    |-----------------| 
    7. | 1935  39.68 | 
    8. | 1935  40.29 | 
    9. | 1935  209.9 | 
10. | 1935  317.6 | 
    |-----------------| 
17. | 1936  50.73 | 
18. | 1936  72.76 | 
19. | 1936  355.3 | 
20. | 1936  391.8 | 
    |-----------------| 
27. | 1937  74.24 | 
28. | 1937  77.2 | 
29. | 1937  410.6 | 
30. | 1937  469.9 | 
    |-----------------| 
37. | 1938  51.6 | 
38. | 1938  53.51 | 
39. | 1938  257.7 | 
40. | 1938  262.3 | 
    +-----------------+ 

如果你有缺失值,他们会进行排序,每个块的结束和陷入困境的结果。所以你需要更多的技巧:

gen OK = !missing(invest) 
bysort OK year (invest) : gen Largest4 = cond(_n < _N - 3, ., invest) if OK 
sort year invest 
list year Largest4 if Largest4 < . in 1/40, sepby(year) 

在这个例子中,你可以运行,没有缺失值,结果是相同的。

+0

尼克,非常感谢您的快速回复。我会尽快回复你。 –