我无法使用xtable R包获得正确的tex输出: 这是knitr文档块中的R代码
attr(p_val_table_list, "subheadings") <- paste0("Hemisphere : ",c("Left","Right"))
xtablelist <- xtableList(p_val_table_list)
col.names <- c("KS test","MWU test", "Welch's t-test")
rowcom <- list(pos = c(4),
command = paste0(c("Region",paste0(" & \\multicolumn{3}{c}{", col.names , '}', collapse='')), '\\\\'))
#print(addtorow)
print(xtablelist, add.to.row = rowcom, only.contents=FALSE,
include.rownames=TRUE, sanitize.colnames.function = simp.colnames,
type="latex",floating.environment = "sidewaystable")
这是tex文件中的相应输出:
% latex table generated in R 3.2.3 by xtable 1.8-2 package
% Mon Oct 31 21:55:14 2016
\begin{sidewaystable}[ht]
\centering
\begin{tabular}{rlllllllll}
\hline
& two.sided & less & greater & two.sided & less & greater & two.sided & less & greater \\
\hline
\multicolumn{9}{l}{Hemisphere : Left}\\
normal vs aMCI & $<$0.0001 & 0.2541 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
normal vs amdMCI & $<$0.0001 & 0.8165 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
normal vs nMCI & $<$0.0001 & 0.8951 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
normal vs nmdMCI & $<$0.0001 & $<$0.0001 & 0.1294 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 \\
aMCI vs amdMCI & $<$0.0001 & 0.8959 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
aMCI vs nMCI & $<$0.0001 & 0.252 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
nMCI vs nmdMCI & $<$0.0001 & $<$0.0001 & 0.7627 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 \\
\hline
\multicolumn{9}{l}{Hemisphere : Right}\\
normal vs aMCI1 & $<$0.0001 & 0.2541 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
normal vs amdMCI1 & $<$0.0001 & 0.8165 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
normal vs nMCI1 & $<$0.0001 & 0.8951 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
normal vs nmdMCI1 & $<$0.0001 & $<$0.0001 & 0.1294 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 \\
aMCI vs amdMCI1 & $<$0.0001 & 0.8959 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
aMCI vs nMCI1 & $<$0.0001 & 0.252 & $<$0.0001 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 \\
nMCI vs nmdMCI1 & $<$0.0001 & $<$0.0001 & 0.7627 & $<$0.0001 & 1 & $<$0.0001 & $<$0.0001 & 1 & $<$0.0001 \\
\hline
\multicolumn{9}{l}{}\\
\end{tabular}
\end{sidewaystable}
包含区域和范围的命令多列...没有看到tex输出。 这是由于我使用xtableList吗?
答案 0 :(得分:0)
我收到了来自xtable作者David Scott的问题的电子邮件:
我很高兴看到你正在使用xtableList。这并不让我感到惊讶 add.to.row有问题,因为xtableList使用add.to.row 提供中间标题(副标题)。
所以我能够按照他的建议解决这个问题: 使用as.is作为Sweave / knitr块并使用字符串替换在rowcom $命令中插入字符串。 因此,print.xtableList的一些参数在函数内部使用,不应使用。