要在LaTeX中执行此操作,您可以将标题添加到\multicolumn事物中以指定所需的对齐方式:
\begin{tabular}{rrr}
\hline
& \multicolumn{1}{c}{x} &\multicolumn{1}{c}{y} \\
\hline
1 & 1 & 0.17 \\
2 & 2 & 0.63 \\
3 & 3 & 0.95 \\
4 & 4 & 0.57 \\
5 & 5 & 0.65 \\
\hline
\end{tabular}
Run Code Online (Sandbox Code Playgroud)
该print.xtable函数使用xtable对象的名称作为标题.所以如果你重命名你的xtable对象:
> d=data.frame(x=1:5,y=runif(5)) # sample data frame
> dx=xtable(d) # make an xtable
> names(dx)=c("\\multicolumn{1}{c}{x}","\\multicolumn{1}{c}{y}")
Run Code Online (Sandbox Code Playgroud)
然后,这是大部分工作,你只需要打印它覆盖以下的清理功能print.xtable:
> print.xtable(dx,sanitize.colnames.function=function(x){x})
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Thu Feb 21 15:28:11 2013
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
\hline
& \multicolumn{1}{c}{x} & \multicolumn{1}{c}{y} \\
\hline
1 & 1 & 0.78 \\
2 & 2 & 0.34 \\
3 & 3 & 0.88 \\
4 & 4 & 0.45 \\
5 & 5 & 0.54 \\
\hline
\end{tabular}
\end{center}
\end{table}
Run Code Online (Sandbox Code Playgroud)
否则它确实如此
& $\backslash$multicolumn\{1\}\{c\}\{x\} & $\backslash$multicolumn\{1\}\{c\}\{y\} \\
Run Code Online (Sandbox Code Playgroud)
怎么样?
只是为了跟进 Spacedman 的回答(无法添加评论,因为我没有名声;)
而不是做sanitize.colnames.function=function(x){x}你可以做:
sanitize.colnames.function=function(x){paste0("\\multicolumn{1}{c}{",x,"}")}
Run Code Online (Sandbox Code Playgroud)
这样您就可以跳过重命名步骤。如果您做/想要做其他标题“美化”,它们应该paste0在逗号之前或之间完成(如果很短)