首先,我会告诉你我正在尝试做大事,以防我错了。我有一个嵌套的表,我希望使用knitr将其作为LaTX表放在RStudio中。我很好,直到我尝试添加标题。我在tables
小插图(LINK)中尝试了第9页上的示例。
它没有标题,但是当我添加标题时它没有。它也适用于非表格对象。有趣的是,latex.default
可以工作,但会导致RStudio / knitr编译PDF中的错误以及我读到的latex
调用的错误。加上桌子不再适当地四舍五入。我试过了latexTabular
,但也没有适当地四舍五入。
library(Hmisc); library(tables)
latex(head(mtcars), file="", caption="de") #works
x <- tabular( (Species + 1) ~ (n=1) + Format(digits=2)*
(Sepal.Length + Sepal.Width)*(mean + sd), data=iris )
latex(x, file="", caption="de") #no caption :(
理想情况下,我希望能够在输出中使用\caption{de}
,但无法弄清楚我出错的地方。
如果这对输入和输出很有帮助:
> latex(x, file="", caption="de", label="tab1")
\begin{tabular}{lccccc}
\hline
& & \multicolumn{2}{c}{Sepal.Length} & \multicolumn{2}{c}{Sepal.Width} \\
Species & n & mean & sd & mean & sd \\
\hline
setosa & $\phantom{0}50$ & $5.01$ & $0.35$ & $3.43$ & $0.38$ \\
versicolor & $\phantom{0}50$ & $5.94$ & $0.52$ & $2.77$ & $0.31$ \\
virginica & $\phantom{0}50$ & $6.59$ & $0.64$ & $2.97$ & $0.32$ \\
All & $150$ & $5.84$ & $0.83$ & $3.06$ & $0.44$ \\
\hline
\end{tabular}
答案 0 :(得分:9)
我很尴尬承认这一点,但整个问题是我试图在不属于的代码块内强制某些内容。我为自己的骄傲感到窒息,以帮助未来的搜索者。乳胶的东西在外面。因此,如果您正在尝试将上表绘制为格式良好的表格,那么这就是您要寻找的内容:
\begin{table}[ht]
\caption{This is a sample caption. \label{guy}}
<<desc, echo = FALSE, results = 'asis'>>=
x <- tabular( (Species + 1) ~ (n=1) + Format(digits=2)*
(Sepal.Length + Sepal.Width)*(mean + sd), data=iris )
latex(x)
@
\end{table}
答案 1 :(得分:7)
来自tabular()的x对象是类&#39;表格式&#39;并被分派到latex.tabular,它没有标题参数。我猜测它的预期用例是在Sweave中,它的任务是提供标题。
但是,第22页上有一个示例,它使用"\\caption{.}"
参数来表示表格中的选项。这似乎取得了成功:
x <- tabular( (Species + 1) ~ (n=1) + Format(digits=2)*
(Sepal.Length + Sepal.Width)*(mean + sd), data=iris )
latex(x, file="", options = list( tabular="longtable", toprule="\\caption{This is a sample caption.}\\\\ \\toprule", midrule="\\midrule\\\\[-2\\normalbaselineskip]\\endhead\\hline\\endfoot"))
\begin{longtable}{lccccc}
\caption{This is a sample caption.}\\ \toprule
& & \multicolumn{2}{c}{Sepal.Length} & \multicolumn{2}{c}{Sepal.Width} \\
Species & n & mean & sd & mean & sd \\
\midrule\\[-2\normalbaselineskip]\endhead\hline\endfoot
setosa & $\phantom{0}50$ & $5.01$ & $0.35$ & $3.43$ & $0.38$ \\
versicolor & $\phantom{0}50$ & $5.94$ & $0.52$ & $2.77$ & $0.31$ \\
virginica & $\phantom{0}50$ & $6.59$ & $0.64$ & $2.97$ & $0.32$ \\
All & $150$ & $5.84$ & $0.83$ & $3.06$ & $0.44$ \\
\hline
\end{longtable}
答案 2 :(得分:0)
这应该有用。
cat('\\begin{table}[ht]
\\centering')
latex(tabularTable)
cat('\\caption{some caption}')
cat('\\label{tab:table1}')
cat('\\end{table}')