如何让 R 的 MonteCarlo 包生成的 LaTex 表发挥作用?

如何让 R 的 MonteCarlo 包生成的 LaTex 表发挥作用?

我一直在为一个项目试验 R 中的 MonteCarlo 包。使用 maketable 函数后,我得到了以下代码,用于生成包含 Monte Carlo 模拟结果的 LaTex 表格。

\begin{table}[h]
\centering
\resizebox{ 1 \textwidth}{!}{%
\begin{tabular}{ rrrrrrrrr }
\hline\hline\\\\
scale & n/loc &  & 0 & 0.2 & 0.4 & 0.6 & 0.8 & 1 \\ 
 &  &  &  &  &  &  &  &  \\ 
\multirow{ 4 }{*}{ 1 } & 50 &  & 0.06 & 0.31 & 0.80 & 0.99 & 1.00 & 1.00 \\ 
 & 100 &  & 0.06 & 0.54 & 0.98 & 1.00 & 1.00 & 1.00 \\ 
 & 250 &  & 0.05 & 0.89 & 1.00 & 1.00 & 1.00 & 1.00 \\ 
 & 500 &  & 0.04 & 0.99 & 1.00 & 1.00 & 1.00 & 1.00 \\ 
 &  &  &  &  &  &  &  &  \\ 
\multirow{ 4 }{*}{ 2 } & 50 &  & 0.05 & 0.11 & 0.33 & 0.59 & 0.81 & 0.93 \\ 
 & 100 &  & 0.05 & 0.14 & 0.52 & 0.83 & 0.97 & 1.00 \\ 
 & 250 &  & 0.05 & 0.36 & 0.89 & 1.00 & 1.00 & 1.00 \\ 
 & 500 &  & 0.06 & 0.66 & 0.99 & 1.00 & 1.00 & 1.00 \\ 
\\
\\
\hline\hline
\end{tabular}%
}
\caption{ decision  }
\end{table}

当我尝试在 Texstudio 中编译此代码时,出现了许多错误消息。浏览论坛后,我发现通过在开头添加 \documentclass{article} 和 \begin{document}. 命令并在结尾添加相应的 \end 命令,大多数错误都可以自行解决。但是,编辑器中仍然弹出五个错误,导致无法编译。这些错误是:

line 5 - Undefined control sequence. \resizebox
line 5 - Missing number, treated as zero. \resizebox { 1 \ textwidth}
line 5 - Illegal unit of measure (pt inserted). \resizebox { 1 \ textwidth}
line 10 - Undefined control sequence. \multirow
line 15 - Undefined control sequence. \multirow

任何关于如何解决这些错误的想法都将受到高度赞赏。

答案1

欢迎来到 TeX.SE。我鼓励您阅读有关 RStudioknitr和 的教程Markdown,例如这个:https://github.com/sahirbhatnagar/knitr-tutorial。万物的家园knitr就在这里:https://yihui.name/knitr/

首先,在 中RStudio,您需要创建一个.Rnw扩展名为 的文件。此文件包含您的LaTeX代码和R代码块。使用pdfLaTeX或编译该文件XeLaTeX。这将执行您的代码块,其输出将.texLaTeX您可能提供的任何格式说明一起包含在文件中。产品是一个pdf文件,其中包含您编写的任何代码的输出LaTeX以及执行代码的输出R

目前,您拥有的只是一个需要包含在.tex需要编写的文件中的代码片段。该文件将以\documentclass{article}(或其他一些类,如bookreport)开头,以 结尾\end{document}

这是一个例子,让我们Fledgling.Rnw从其中一个调用它@Fran 的回答很棒

\documentclass{article}
\begin{document}
<<mytable,echo=FALSE,results='asis'>>=
library(xtable)
a <- matrix(c(1,2,3,4,5,6,7,8,9),nrow=3)
xtable(a)
@
\end{document}

代码R块位于<<>>==和之间@。在这里,它加载xtablelibrary相当于\usepackage中的 。创建LaTeX一个矩阵,然后通过执行 语法对其进行格式化。执行代码结束时将创建一个名为 的文件。这可以通过使用包来实现。无需用户干预。您所需要的只是 RStudio 和一个文件。使用创建的文件,或接管并编译以生成。aLaTeXxtableFledling.texRRknitr.Rnw.texpdfLaTeXXeLaTeXFledgling.texFledgling.pdf

答案2

您需要graphicx的包\resizeboxmultirow的包\multirow,因此其可行:

\documentclass[a4paper]{article}
\usepackage{graphicx,multirow}
\begin{document}
\begin{table}[h]
\centering
\resizebox{ 1 \textwidth}{!}{%
\begin{tabular}{ rrrrrrrrr }
\hline\hline\\\\
scale & n/loc &  & 0 & 0.2 & 0.4 & 0.6 & 0.8 & 1 \\ 
 &  &  &  &  &  &  &  &  \\ 
\multirow{ 4 }{*}{ 1 } & 50 &  & 0.06 & 0.31 & 0.80 & 0.99 & 1.00 & 1.00 \\ 
 & 100 &  & 0.06 & 0.54 & 0.98 & 1.00 & 1.00 & 1.00 \\ 
 & 250 &  & 0.05 & 0.89 & 1.00 & 1.00 & 1.00 & 1.00 \\ 
 & 500 &  & 0.04 & 0.99 & 1.00 & 1.00 & 1.00 & 1.00 \\ 
 &  &  &  &  &  &  &  &  \\ 
\multirow{ 4 }{*}{ 2 } & 50 &  & 0.05 & 0.11 & 0.33 & 0.59 & 0.81 & 0.93 \\ 
 & 100 &  & 0.05 & 0.14 & 0.52 & 0.83 & 0.97 & 1.00 \\ 
 & 250 &  & 0.05 & 0.36 & 0.89 & 1.00 & 1.00 & 1.00 \\ 
 & 500 &  & 0.06 & 0.66 & 0.99 & 1.00 & 1.00 & 1.00 \\ 
\\
\\
\hline\hline
\end{tabular}%
}
\caption{ decision  }
\end{table}
\end{document}

也就是说,我认为调整表格大小有点没意义,所以我宁愿做这样的事情:

\documentclass[a4paper]{article}
\usepackage{booktabs,multirow}
\begin{document}
\begin{table}
\centering
\begin{tabular}{ rrrrrrrrr }
\toprule
scale & n/loc &  & 0 & 0.2 & 0.4 & 0.6 & 0.8 & 1 \\ \midrule
\multirow{ 4 }{*}{ 1 } & 50 &  & 0.06 & 0.31 & 0.80 & 0.99 & 1.00 & 1.00 \\ 
 & 100 &  & 0.06 & 0.54 & 0.98 & 1.00 & 1.00 & 1.00 \\ 
 & 250 &  & 0.05 & 0.89 & 1.00 & 1.00 & 1.00 & 1.00 \\ 
 & 500 &  & 0.04 & 0.99 & 1.00 & 1.00 & 1.00 & 1.00 \\ \addlinespace
\multirow{ 4 }{*}{ 2 } & 50 &  & 0.05 & 0.11 & 0.33 & 0.59 & 0.81 & 0.93 \\ 
 & 100 &  & 0.05 & 0.14 & 0.52 & 0.83 & 0.97 & 1.00 \\ 
 & 250 &  & 0.05 & 0.36 & 0.89 & 1.00 & 1.00 & 1.00 \\ 
 & 500 &  & 0.06 & 0.66 & 0.99 & 1.00 & 1.00 & 1.00 \\ 
\bottomrule
\end{tabular}%
\caption{ decision  }
\end{table}
\end{document}

该包提供booktabs\toprule\midrule\bottomrule\addlinespace

相关内容