0
Calculate industry concentration in Stata based on four biggest numbers产生可变只包括4强的企业与最大的销售
正如我的问题是非常相关的上述以前的帖子,我想生成一个变量只包括了前4名企业与最大的销售和排除休息。换句话说,新的变量只有在给定行业中具有最大销售额的4家公司的价值,而其余的将是“。”。
如果你能帮助我的命令,我将不胜感激。
Calculate industry concentration in Stata based on four biggest numbers产生可变只包括4强的企业与最大的销售
正如我的问题是非常相关的上述以前的帖子,我想生成一个变量只包括了前4名企业与最大的销售和排除休息。换句话说,新的变量只有在给定行业中具有最大销售额的4家公司的价值,而其余的将是“。”。
如果你能帮助我的命令,我将不胜感激。
没有数据的例子,没有尝试在代码;但问题很明显。
考虑一下:
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)
在这个例子中,你可以运行,没有缺失值,结果是相同的。
尼克,非常感谢您的快速回复。我会尽快回复你。 –
你做了什么吗? –
非常感谢Nick我解决了这个问题,当然这只适用于前4家公司不会每年更换 –