说我有这些数据。
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等)文件,使用的是 esttab
或 estout
. 这可能吗?我想这样做的关键原因是,我希望能够保留行名中的空格。而且如果能够在1,000's后面加上逗号就更好了。
一个部分的方法是将数据保存到一个矩阵中,然后使用以下方法导出矩阵 esttab
但我是否需要这个额外的步骤?
mkmat mpg n, matrix(mat) rownames(name)
esttab matrix(mat)
这样做的一个问题是,它将行名中的空格替换为_。另一个问题是,如果行名中的任何一个(来自变量的 name
)是 :
那么这就在输出中创建了类别。有没有其他解决方案?要么直接从数据中导出,要么可能以某种方式将数据保存在估计中?
而不是使用 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
.