为连续表创建双向摘要统计表的最佳方法是什么?例如一个看起来像
的表 Group1 Group2 Total
mean sd mean sd mean sd
x1 1 2 3 4 5 6
x2 7 7 7 7 7 7
summarize
很容易做到这一点,但没有分组。
我还查看了tabulate
和tabout
,但是当x1和x2是离散变量时,这些似乎更相关。
如果可以将表导出为LaTeX文件,也会很好。
答案 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)