gen-和-egen-中的-sum()-函数

作者:连玉君 (知乎 | 简书 | 码云)

此求和非彼求和

实证分析中,进场需要进行加总计算。Stata 中的 generate 命令以及更为强大的 egen 命令都提供了 sum() 函数。然而,需要特别注意的是,二者的功能有很大的差异。先看看如下范例:

clear
input x
      1
      2
      3
      4
end

 gen sx_gen  = sum(x)
egen sx_egen = sum(x)

list , clean noobs

结果如下:

. list , clean noobs
    x   sx_gen   sx_egen  
    1        1        10  
    2        3        10  
    3        6        10  
    4       10        10  

可见,gen 提供的 sum() 函数执行的是累积加总,而 egen 提供的 sum() 函数则进行整体加总

扩展应用:分组求和

计算各个年度的销售总额 (sx_egen),以及每家公司当年的市场份额 (sale_per):

clear
input id     year    sale  
      601    2011    0.1
      602    2011    0.2
      601    2012    0.3
      602    2012    0.4
      603    2012    0.5
end

bysort year:  gen sx_gen  = sum(sale)
bysort year: egen sx_egen = sum(sale)

gen sale_per = sale/sx_egen*100 //市场份额

format sx* sale* %3.1f
list, noobs sepby(year)

结果如下:

. list, noobs sepby(year)

  +-------------------------------------------------+
  |  id   year   sale   sx_gen   sx_egen   sale_per |
  |-------------------------------------------------|
  | 601   2011    0.1      0.1       0.3       33.3 |
  | 602   2011    0.2      0.3       0.3       66.7 |
  |-------------------------------------------------|
  | 601   2012    0.3      0.3       1.2       25.0 |
  | 602   2012    0.4      0.7       1.2       33.3 |
  | 603   2012    0.5      1.2       1.2       41.7 |
  +-------------------------------------------------+

关于我们

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 联系邮件: [email protected]

特别说明

文中包含的链接在微信中无法生效。请点击本文底部左下角的【阅读原文】,转入本文【简书版】

近期推文

猜你喜欢

转载自blog.csdn.net/arlionn/article/details/79328528
gen