【问题标题】:Loop for particular values of variable in Stata循环获取Stata中变量的特定值
【发布时间】:2020-10-27 21:44:53
【问题描述】:

我有一个变量id,我想要每个id 的投资总和。

我正在尝试编写一个循环,但它不正确。

 levelsof id2, local(levels)
 foreach l of local levels {
     gen totalgovtake = sum(Real_Gov_Take_MUSD)
 }

【问题讨论】:

  • 正如@Cyber​​nike 所示,您不需要循环。此代码中的错误包括:(1)第二次循环,它将失败,因为新变量已经存在(2)代码中没有任何内容意味着每个id的单独操作(3)您正在使用sum(),它给出累积或运行总和。不是总数。

标签: loops foreach stata


【解决方案1】:

您实际上并不需要在这里使用循环。我创建了一些模拟数据来说明解决方案(请尝试在下次提问时提供模拟数据)。

input id value
1 20
1 30
1 25
2 60
2 50
3 10
3 20
4 50
end

bysort id: egen total = sum(value)

list, sepby(id)

     +--------------------+
     | id   value   total |
     |--------------------|
  1. |  1      20      75 |
  2. |  1      30      75 |
  3. |  1      25      75 |
     |--------------------|
  4. |  2      60     110 |
  5. |  2      50     110 |
     |--------------------|
  6. |  3      10      30 |
  7. |  3      20      30 |
     |--------------------|
  8. |  4      50      50 |
     +--------------------+

【讨论】:

  • 非常感谢!真的很有帮助
  • egen 函数 sum() 仍然可以正常工作,但从 Stata 9 开始记录的是等效的 egen 函数 total()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多