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

问题描述 投票:0回答:1

说我有这些数据。

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

我想把它们直接从数据中导出成一个.rtf(.tex等)文件,使用的是 esttabestout. 这可能吗?我想这样做的关键原因是,我希望能够保留行名中的空格。而且如果能够在1,000's后面加上逗号就更好了。

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

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

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

format export stata space
1个回答
2
投票

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

如果你真的想先创建一个数据集,你仍然可以使用 estpost tabstat. 这似乎对你的数据集有效。

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

如果你想让 "a b: c "再次出现在顶部,你可以使用顺序选项 esttab.

© www.soinside.com 2019 - 2024. All rights reserved.