1

我试图在 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)
4

1 回答 1

2

四个最大的和是

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 Journal 上的这篇文章。

如果有缺失,那么它们可以通过

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] 
于 2013-07-21T11:02:38.977 回答