我试图找出Stata中变量的四个最大数字,因为我想根据销售情况计算不同集团的行业集中度。我有几年的公司销售,这些公司属于不同的行业和国家的集团。
因此,我想找到:
行业集中度= (4项最大销售额-一个行业-国家集团-一年的价值)/该行业-国家-集团一年所有销售总额的总和)
关于10000
公司,我已经了解了10
几年:
firms country year industry sales
a usa 1 1 300
a usa 2 1 4000
b ger 1 1 200
b ger 2 1 400
c usa 1 1 100
c usa 2 1 300
d usa 1 1 400
d usa 2 1 200
e usa 1 1 7000
e usa 2 1 900
f ger 1 2 100
f ger 2 2 700
h ger 1 2 700
h ger 2 2 600
我知道如何找出每个行业-国家-年组的销售额之和:
bysort country industry year: egen sum_sales = sum(sales)
发布于 2013-07-21 11:02:38
四大的之和是
bysort country industry year (sales): generate four_biggest_sales = sales[_N] + ///
sales[_N-1] + sales[_N-2] + sales[_N-3]
如果不缺少sales
的值。如果只有三个值,那么您需要
max(0, sales[_N-3])
对两个值的情况进行类似的修正,一个值或无值。
这都来自于by
前缀的基本语法。有关教程,请参见这篇文章发表在Stata杂志上。
如果有失踪者,那么他们可以被隔离
generate isnotmiss = !missing(sales)
bysort isnotmiss country industry year (sales): generate four_biggest_sales = sales[_N] + ///
sales[_N-1] + sales[_N-2] + sales[_N-3]
https://stackoverflow.com/questions/17771069
复制相似问题