如何使用 esttab 或 estout 从数据中导出

How to export from data using esttab or estout

假设我有这些数据:

sysuse auto2, clear
gen name = substr(make, 1,3)
drop if missing(rep78)
gen n = 1
collapse (mean) mpg (sum) (n), by(name)
replace name = "a b: c" if _n==1

我想使用 esttabestout 将它们直接从数据导出到 .rtf(.tex 等)文件。这可能吗?我想要这样做的关键原因是我希望能够保留行名称中的空格。如果能够选择在 1,000's 之后使用逗号,那就太好了。

一种部分方法是将数据保存到矩阵,然后使用 esttab 导出矩阵,但我需要这个额外的步骤吗?

mkmat mpg n, matrix(mat) rownames(name)
esttab matrix(mat)

一个问题是它将行名称中的空格替换为 _。另一个问题是,如果任何行名(来自变量 name)是 :,那么这将在输出中创建类别。还有其他解决方案吗?是直接从数据中导出还是可能以某种方式将数据保存在估算中?

您可以直接使用 estpost tabstat, statistics(mean count) by() 计算均值和计数,而不是使用 collapse。然后您可以使用 esttab 导出结果。

如果你真的想先创建一个数据集,你仍然可以使用estpost tabstat。这似乎适用于您的数据集:

estpost tabstat mpg n, by(name) nototal
esttab, cells("mpg n") varlabels(`e(labels)') noobs nonumber nomtitle

如果您希望 "a b: c" 再次位于顶部,您可以使用 esttab 的排序选项。