如何在R中的表格{tables}对象中添加额外的水平线?

时间:2014-09-18 13:47:29

标签: r latex tabular

我想在我使用tabular(){ta​​bles}在R sweave文档中创建的复杂表中添加一个额外的\hline

以Iris数据为例:我想在 Iris setosa 下面添加一条额外的水平线,只包含列,而不是行名。目前,我有这个:

Example of a table with multi-coloum header

生成表格的代码:

\begin{table}
\begin{center}
<<iristable, eval=TRUE, echo=FALSE, results='asis', message=FALSE>>=
library(Hmisc) ; library(tables)


tab.obj <- tabular( Species  ~ (Heading("Mean")*
                                  (Heading("")*mean*Sepal.Width +
                                   Heading("")*mean*Sepal.Length)) +
                               (Heading("Median")*
                                  (Heading("")*median*Sepal.Width +
                                   Heading("")*median*Sepal.Length)),
                    data=iris)

  nicetable<- booktabs() ## needs LaTex package \usepackage{booktabs}
  table_options(nicetable)
  table_options(titlerule="\\cmidrule(lr)")

latex(tab.obj)
@
\caption{This table is just an example.}
\end{center}
\label{tab:example_table}
\end{table} 

我想这一定是可能的,但我不太清楚如何。

1 个答案:

答案 0 :(得分:0)

查看函数tables:::latex.tabular有一种计算titlerule的cline参数的方法,

   titlerules <- sprintf("%s%s{%d-%d}", titlerules, 
                        opts$titlerule, firstcol, firstcol + 
                          ncols - 1)

但不是中等规则。所以你必须手动完成......这里使用

  

table_options(midrule =&#34; \ cmidrule(LR){2-3} \ cmidrule(LR){4-5}&#34)

\begin{table}
\begin{center}
<<iristable, eval=TRUE, echo=FALSE, results='asis', message=FALSE>>=
library(Hmisc) ; library(tables)
tab.obj <- tabular( Species  ~ (Heading("Mean")*
                                  (Heading("")*mean*Sepal.Width +
                                   Heading("")*mean*Sepal.Length)) +
                               (Heading("Median")*
                                  (Heading("")*median*Sepal.Width +
                                   Heading("")*median*Sepal.Length)),
                    data=iris)

  nicetable<- booktabs() ## needs LaTex package \usepackage{booktabs}
  table_options(nicetable)
  table_options(titlerule="\\cmidrule(lr)")
  table_options(midrule="\\cmidrule(lr){2-3}\\cmidrule(lr){4-5}")
latex(tab.obj)
@
\caption{This table is just an example.}
\end{center}
\label{tab:example_table}
\end{table}

midrule_cline