我一直在为一个项目试验 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。我鼓励您阅读有关 RStudio
、knitr
和 的教程Markdown
,例如这个:https://github.com/sahirbhatnagar/knitr-tutorial。万物的家园knitr
就在这里:https://yihui.name/knitr/。
首先,在 中RStudio
,您需要创建一个.Rnw
扩展名为 的文件。此文件包含您的LaTeX
代码和R
代码块。使用pdfLaTeX
或编译该文件XeLaTeX
。这将执行您的代码块,其输出将.tex
与LaTeX
您可能提供的任何格式说明一起包含在文件中。产品是一个pdf
文件,其中包含您编写的任何代码的输出LaTeX
以及执行代码的输出R
。
目前,您拥有的只是一个需要包含在.tex
需要编写的文件中的代码片段。该文件将以\documentclass{article}
(或其他一些类,如book
或report
)开头,以 结尾\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
块位于<<>>==
和之间@
。在这里,它加载xtable
。library
相当于\usepackage
中的 。创建LaTeX
一个矩阵,然后通过执行 语法对其进行格式化。执行代码结束时将创建一个名为 的文件。这可以通过使用包来实现。无需用户干预。您所需要的只是 RStudio 和一个文件。使用创建的文件,或接管并编译以生成。a
LaTeX
xtable
Fledling.tex
R
R
knitr
.Rnw
.tex
pdfLaTeX
XeLaTeX
Fledgling.tex
Fledgling.pdf
答案2
您需要graphicx
的包\resizebox
和multirow
的包\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