Stata 直接输出到 Latex

Stata 直接输出到 Latex

我正在寻找最佳、最通用的转移方式统计输出到 latex (任何类型) 我知道 esttab 和类似的东西,但是如果我想传输不同的东西 (任何类型的输出,不仅仅是 reg) 怎么办?最通用、最有效的方法是什么?

我正在使用 Stata SE 11.2。

一般来说,我希望有一个 stata 日志.tex格式。例如,我希望有一个 tex 版本的 vif 表。

命令:

. vif

输出:

Variable |      VIF      1/VIF  
---------+----------------------
   meals |      2.73    0.366965
     ell |      2.51    0.398325
    emer |      1.41    0.706805
---------+----------------------
Mean VIF |      2.22

答案1

我能想到的最灵活的工具是 John Luke Gallup 的frmttable

frmttable 是一个程序员命令,它采用 Stata矩阵统计数据并创建一个可以写入文件的完全格式的 Word 或 TeX 表。

我强调了矩阵的重要性。

以下是 VIF 表的一个小示例:

sysuse auto, clear
qui reg price mpg rep78 weight
estat vif
return list

mat A = `r(vif_1)', 1/`r(vif_1)' \ `r(vif_2)', 1/`r(vif_2)' \ `r(vif_3)', 1/`r(vif_3)'
mat B = A[1...,1]               // extract first column in order to compute mean
mat sm = J(rowsof(B),1,1)'*B    // sum of column elements
mat vifmean = sm/rowsof(B)      // compute VIF mean
mat A = A\ vifmean, .           // append A by vifmean
mat rownames A = `r(name_1)' `r(name_2)' `r(name_3)' "Mean VIF"
mat colnames A = VIF 1/VIF

frmttable using your-path/vifexample, statmat(A) sdec(2) varlabels tex fragment nocenter replace

这将存储以下 LaTeX 输出

\begin{tabular}{lcc}
\hline \noalign{\smallskip} & VIF & 1/VIF\\
\noalign{\smallskip}\hline \noalign{\smallskip}Mileage (mpg) & 2.91 & 0.34\\
Weight (lbs.) & 2.91 & 0.34\\
Repair Record 1978 & 1.22 & 0.82\\
Mean VIF & 2.34 & \\
\noalign{\smallskip}\hline\end{tabular}\\

在文件中your-path/vifexample.tex。然后,您可以将此文件输入到您的文档中,例如在表格浮点中:

\documentclass{article}

\begin{document}

\begin{table}
\centering
\caption{An example of a VIF table}

\input{your-path/vifexample.tex}

\end{table}
\end{document}

这将产生输出

enter image description here

编辑:扩展 LaTeX 代码以便在@Bobyandbob 的评论之后生成可编译的示例。

编辑2:拆分 LaTeX 代码以便澄清。

相关内容