根据四个最大数字计算Stata的行业集中度

时间:2013-07-21 09:55:30

标签: file stata sales

我试图找到Stata中变量的四个最大数字。我想根据销售额来计算不同群体的行业集中度:

我公司的销售额来自多年。这些公司属于基于行业和国家的不同群体。因此,我想找到:

  

行业集中度=(一个行业和国家集团一年的4个最大销售额)/行业 - 国家集团一年所有销售额的总和)

我的观察分为:

  公司 - 国家 - 年 - 行业 - 销售

     

-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

     

-.................等............................ .........

我有大约10000家公司大约10年。这只是一个例子。我知道如何找到每个行业 - 国家 - 年组的销售总额:

bysort country industry year: egen sum_sales = sum(sales)

1 个答案:

答案 0 :(得分:2)

四大的总和是

 bysort country industry year (sales): gen four_biggest_sales = sales[_N] + sales[_N-1] + sales[_N-2] + sales[_N-3] 

前提是没有sales的值丢失。如果只有三个值,那么您需要

 max(0, sales[_N-3]) 

对两个值,一个值或无值的情况进行类似的修正。

这一切都来自by:的基本语法。有关教程,请参阅http://www.stata-journal.com/article.html?article=pr0004

(稍后)如果有遗漏,则可以通过

进行隔离
gen isnotmiss = !missing(sales) 
bysort isnotmiss country industry year (sales): gen four_biggest_sales = sales[_N] + sales[_N-1] + sales[_N-2] + sales[_N-3]