【问题标题】:Loops with egen in Stata在Stata中使用egen循环
【发布时间】:2015-03-19 23:10:23
【问题描述】:

我有一个如下所示的数据集:

  delta    taubar
   0       1.5
  -0.223   2
   3       6.5
   0.334   2
   11      7
   2.123   1.5

delta 取与taubar 对应的不同值。但是,我想为taubar 的每个值创建一个变量,该变量取delta 的平均值。也就是说,如果taubar 的值为 2,频率为 400,并且对于这 400 个中的每一个,delta 是不同的,我想创建一个变量,它是每个值的 delta 的平均值taubar

我用过

egen meandelta = mean(delta) if taubar == 2

在这种情况下,Stata 创建一个值 0.234,它是所有 400 个 2 的增量的平均值。这是低效的;另外,数据集中有600个taubars,每个可能有500个对应的deltas。 我希望每个 taubar 从 1.5 到 327 都对应于其 deltas 的平均值。

【问题讨论】:

    标签: loops stata


    【解决方案1】:

    不完全清楚你想要什么,但没必要循环。

    如果您想保留原始数据,请尝试:

    bysort taubar: egen meandelta = mean(delta) 
    

    您也可以考虑:

    collapse (mean) meandelta=delta, by(taubar)
    

    但这会破坏您的数据并用数据集替换它。

    【讨论】:

    • 同意将单一均值放入变量中是低效的,因此正如 Dimitriy 解释的那样,将所有均值放入新变量中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 2019-11-04
    相关资源
    最近更新 更多