我想向我使用 tabular(){tables} 在 R sweave 文档中创建的复杂表添加额外的 \hline
。
以 Iris 数据为例:我想在 Iris setosa 下方添加一条额外的水平线,仅跨越列,而不跨越行名称。目前,我有这个:
生成表的代码:
\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}
我想这一定是可能的,但我不知道怎么做。
最佳答案
查看函数 tables:::latex.tabular
有一种方法可以计算 titlerule 的 cline 参数,
titlerules <- sprintf("%s%s{%d-%d}", titlerules,
opts$titlerule, firstcol, firstcol +
ncols - 1)
但不适用于中间规则。所以你必须手动完成......这里使用
\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}
关于r - 如何向 R 中的 tabular{tables} 对象添加额外的水平线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25914503/