2

我正在为表格包而苦苦挣扎,可打包文档中的所有示例都非常复杂,而且它们都不适用于我knitr和乳胶。有人可以帮忙在标题中显示一个带有一些公式和多行标签的简单表格吗? 

像这样的东西:

df <- data.frame(matrix(1:9, nrow = 3))
colnames(df) <- c("first column", "second \\frac{1}{2}", "third column first line \\ second line")

先感谢您

4

2 回答 2

5

xtable可以使用包为 LaTeX 中的表格创建多行标题。这些可以从 .Rmd 或 .Rnw 文件编译。以 mattw 的示例为基础,并add.to.rowprint方法中使用xtable

df <- data.frame(matrix(1:50, nrow = 10))

print(
  xtable(df),
  include.rownames = FALSE,
  include.colnames = FALSE,
  add.to.row = list(
    pos = list(0),
    command = c(
      "& \\multicolumn{4}{c}{4 column header} \\\\
       \\cline{2-5}
      col1 & col2 & col3 & col4 & col5 \\\\ "
    )
  )
)

在此处输入图像描述

请注意,这add.to.row需要一个包含两个元素的列表:pos 和 command。第一个必须是列表,第二个必须是字符串或向量,请参阅?print.xtable. pos给出 LaTeX 插入的行号,command是插入. 格式化时要小心,因为如果您不输入空格或\n.

有很多自定义选项,允许您通过一些调整来创建相当复杂的表格。

print(
  xtable(df),
  include.rownames = FALSE,
  include.colnames = FALSE,
  hline.after = c(-1,0),
  add.to.row = list(
    pos = list(0,5,10),
    command = c(
      "& \\multicolumn{4}{c}{4 column header} \\\\
       \\cline{2-5}
      col1 & col2 & col3 & col4 & col5 \\\\ ",
      "\\hline \\multicolumn{5}{l}{Separator in table.} \\\\ \\hline",
      "\\hline \\multicolumn{5}{l}{Notes at end of table.} \\\\ "
    )
  )
)

在此处输入图像描述

xtable在此示例中,我更改了 where puts的默认设置\hline,允许我\hline在注释上方添加最后一个 - 对于解释表中的上标很有用。

还要注意在第\cline{2-5}2 - 5 列上给我一条线的用法。

有关完全可重现的示例,请参见要点

于 2015-08-14T23:42:06.880 回答
1

如果您希望表格采用 LaTeX 样式,我认为 RMarkdown 不可能做到这一点。xtable但是,当您在文件中编写代码时,您可以使用包轻松执行此.Rnw操作:

\documentclass{article}
\begin{document}
<<>>=
library("xtable")
df <- data.frame(matrix(1:9, nrow = 3))
colnames(df) <- c("first column", "second $\\frac{1}{2}$",
                  "third column")
@
<<xtable, results = "asis">>=
print(xtable(df), floating = TRUE,
      sanitize.colnames.function = identity, type = "latex")
@
\end{document}
于 2015-08-14T08:50:14.197 回答