Hmisc :: latex不打印带有表格对象的标题

时间:2012-09-13 01:05:55

标签: r latex tabular hmisc

首先,我会告诉你我正在尝试做大事,以防我错了。我有一个嵌套的表,我希望使用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}

3 个答案:

答案 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}')