我已经使用了knitr和LaTeX,但我想改用Markdown,因为这似乎与Word更兼容(htlatex和Pandoc工作,但它远非舒适).我目前的问题是在Hmisc包中找到latex()的替代品.我发现的唯一替代方法是xtable,但它似乎没有创建多列.
这是一个例子:
mx <- matrix(1:6, ncol=3)
rownames(mx) <- LETTERS[1:NROW(mx)]
colnames(mx) <- sprintf("Col %s", LETTERS[1:NCOL(mx)])
latex(mx, n.rgroup=c(2), rgroup=c("Nice!"),
n.cgroup=c(2,1), cgroup=c("First", "Second"),
file="",
ctable=TRUE)
Run Code Online (Sandbox Code Playgroud)
产生这个表:

我的目标是使用R中的multirow/multicolumn特性创建latextable.我想要的latextable应该如下所示:
colLabel | colLabel2
|
a1 a2 | a3 a4
-------------------------------------
b1 1 2 | 5 6
rowLabel1 |
b2 3 4 | 7 8
--------------------------------------
b3 9 10 | 13 14
rowLabel2 |
b4 11 12 | 15 16
--------------------------------------
Run Code Online (Sandbox Code Playgroud)
我目前正在使用xtable但我无法弄清楚如何使用这个包创建multirow.谁能告诉我如何创建这样的表?
先感谢您
我想在我打印的表格下面发表评论,xtable.我认为最好的选择是使用"标题"选项:xtable(tablename, caption="This is a caption").但这是以某种方式自动放入"表1",因此输出如下:
表1:这是一个标题.
是否有任何方法可以抑制这种或任何更简单的方式将注释简单地作为表中的附加最后一行?
我有一个简单的表,其中包含我想要从R导出到Latex的维度名称.我正在寻找一种直接的方法,不需要在乳胶中进行额外的编辑.这似乎应该很容易,但我在这个主题上找到了许多其他未解决的问题.
我试过在这篇文章之后使用Hmisc latex命令.它产生OP状态,但问题仍然没有得到解决. 这篇文章有一堆表格选项,但我没有看到维度名称被解决.! LaTeX Error: Illegal character in array arg.
R-代码
library(Hmisc)
latex(table(state.division, state.region), rowlabel = "X", collabel = "Y", file = "")
Run Code Online (Sandbox Code Playgroud)
产量
%latex.default(table(state.division, state.region), rowlabel = "X", collabel = "Y", file = "")%
\begin{table}[!tbp]
\begin{center}
\begin{tabular}{lrrrr}
\hline\hline
\multicolumn{1}{l}{X}&\multicolumn{1}{Y}{Northeast}&\multicolumn{1}{l}{South}&\multicolumn{1}{Y}{North Central}&\multicolumn{1}{l}{West}\tabularnewline
\hline
New England&$6$&$0$&$0$&$0$\tabularnewline
Middle Atlantic&$3$&$0$&$0$&$0$\tabularnewline
South Atlantic&$0$&$8$&$0$&$0$\tabularnewline
East South Central&$0$&$4$&$0$&$0$\tabularnewline
West South Central&$0$&$4$&$0$&$0$\tabularnewline
East North Central&$0$&$0$&$5$&$0$\tabularnewline
West North Central&$0$&$0$&$7$&$0$\tabularnewline
Mountain&$0$&$0$&$0$&$8$\tabularnewline
Pacific&$0$&$0$&$0$&$5$\tabularnewline
\hline
\end{tabular}\end{center}
\end{table}
Run Code Online (Sandbox Code Playgroud)
乳胶渲染后的错误消息
Errors:
./test.tex:9: LaTeX Error: Illegal character in …Run Code Online (Sandbox Code Playgroud) 我想将 data.frame 转换为具有多列的(booktab)乳胶表,但我无法创建将 放在\toprule表顶部的输出。使用了以下数据
dat <- structure(c(841.8, 804.4, 135.1, 106.2, 0.7025, 0.09645, 305.2,
707.1, 449.3, 119.9, 0.7025, 0.09645), .Dim = c(2L, 6L), .Dimnames = list(
c("ev", "smooth"), c("Mean", "SD", "best", "Mean", "SD",
"best")))
> dat
Mean SD best Mean SD best
ev 841.8 135.1 0.70250 305.2 449.3 0.70250
smooth 804.4 106.2 0.09645 707.1 119.9 0.09645
addtorow <- list()
addtorow$pos <- list(-1)
addtorow$command <- '& \\multicolumn{3}{c}{Tab a}& \\multicolumn{3}{c}{Tab b}\\\\'
print(xtable(dat), add.to.row=addtorow, include.colnames=TRUE,booktabs=TRUE)
Run Code Online (Sandbox Code Playgroud)
输出看起来几乎正确,但\toprule位置错误。
\begin{table}[ht]
\centering
\begin{tabular}{rrrrrrr}
& …Run Code Online (Sandbox Code Playgroud)