【问题标题】:Create a table with weights创建一个带有权重的表
【发布时间】:2017-04-03 01:52:31
【问题描述】:

我正在使用 Stata 创建一个按权重汇总观察次数的表格。

假设我有以下数据集:

Gender Education Weights
  1        2       1.2
  1        1       0.5
  2        2       3.0
  2        2       1.3

我想创建下表:

           Education1   Education2
Gender1         0.5         1.2
Gender2          0          4.3

所以我将相应条目中第三列加权的观察次数相加。例如,对于Gender2Education2,我有两个观察值,它们的权重分别为3.01.3。结果,我只计算1.3*1 + 3.0*1 = 4.3

Stata 中是否有任何简单的方法来创建这样的表?

只要数字输入正确,行名和列名都无所谓。

【问题讨论】:

    标签: dataset stata


    【解决方案1】:

    您应该使用collapse 以任何您想要的方式减少您的数据集。 在你的例子中

    #create the weighted observations
    gen full_obs = education * weights
    
    #aggregate
    collapse (sum) education = full_obs, by(gender)
    

    如果需要,您可以reshape您的数据。

    【讨论】:

    • 这不是我想要的。此代码创建一个单向表。
    • 重塑它,兄弟
    • 我认为根本不需要对数据集进行任何重组。这是一个稍微不标准的制表问题。
    【解决方案2】:

    您可以使用tabulate 命令生成所需的输出:

    clear 
    
    input Gender Education Weights
    1   2   1.2
    1   1   0.5
    2   2   3.0
    2   2   1.3
    end 
    
    tabulate Gender Education [iw=Weights] 
    
               |       Education
        Gender |         1          2 |     Total
    -----------+----------------------+----------
             1 |        .5        1.2 |       1.7 
             2 |         0        4.3 |       4.3 
    -----------+----------------------+----------
         Total |        .5        5.5 |         6 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2020-11-30
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多