Twoway连续变量的汇总统计表

时间:2018-03-24 11:30:15

标签: stata

为连续表创建双向摘要统计表的最佳方法是什么?例如一个看起来像

的表
           Group1           Group2          Total
      mean       sd      mean      sd     mean     sd
x1      1         2       3         4       5       6 
x2      7         7       7         7       7       7

summarize很容易做到这一点,但没有分组。

我还查看了tabulatetabout,但是当x1和x2是离散变量时,这些似乎更相关。

如果可以将表导出为LaTeX文件,也会很好。

2 个答案:

答案 0 :(得分:0)

对此没有真正开箱即用的解决方案。曾经有latabstat,但我发现这不太适合。当我面对这样的任务时,我通常会手工完成:

log using table.tex, text replace
log on
foreach v in x1 x2 {
    di "`v' " _c 
    foreach gr in Group1 Group2 {
        qui sum `v' if `gr' == 1
        di " & " r(mean) " & " r(sd) _c
    }
    ** Total Group
    qui sum `v' 
     di " & " r(mean) " & " r(sd) " \\"
}
log off

这样,您可以在日志文件中拥有表的主体,该文件可以包含在Latex文档中

答案 1 :(得分:0)

折叠可以让你想要你想要的。您只需要确保数据正确组织。

你的“x”应该有一个变量。然后,您只需要将您想要汇总的数据分别作为group1,group2和total的单个变量。您需要复制这些变量以获得多个摘要统计信息,但是然后折叠就可以将数据折叠到摘要统计信息表中。

    clear

    * Generate Data
    set obs 20
    gen x = "x1" in 1/10
    replace x = "x2" in 11/20
    set seed 122
    gen m_group1 = runiform()
        gen sd_group1 = m_group1    // Duplicate data for SD column
    gen m_group2 = runiform()
        gen sd_group2 = m_group2
    gen m_total = m_group1 + m_group2
        gen sd_total = m_total

    collapse    (mean) m_group1 (sd) sd_group1  /// Group 1
                (mean) m_group2 (sd) sd_group2  /// Group 2
                (mean) m_total (sd) sd_total    /// Total Group
                , by(x)