我正在为表格包而苦苦挣扎,可打包文档中的所有示例都非常复杂,而且它们都不适用于我knitr
和乳胶。有人可以帮忙在标题中显示一个带有一些公式和多行标签的简单表格吗?
像这样的东西:
df <- data.frame(matrix(1:9, nrow = 3))
colnames(df) <- c("first column", "second \\frac{1}{2}", "third column first line \\ second line")
先感谢您
我正在为表格包而苦苦挣扎,可打包文档中的所有示例都非常复杂,而且它们都不适用于我knitr
和乳胶。有人可以帮忙在标题中显示一个带有一些公式和多行标签的简单表格吗?
像这样的东西:
df <- data.frame(matrix(1:9, nrow = 3))
colnames(df) <- c("first column", "second \\frac{1}{2}", "third column first line \\ second line")
先感谢您
xtable
可以使用包为 LaTeX 中的表格创建多行标题。这些可以从 .Rmd 或 .Rnw 文件编译。以 mattw 的示例为基础,并add.to.row
在print
方法中使用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 列上给我一条线的用法。
有关完全可重现的示例,请参见要点。
如果您希望表格采用 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}