2013-02-20 72 views
2

是否有可能在xtable中有一個頭對齊與表中其餘部分使用的對齊不同?在我的情況下,我希望我的標題居中對齊,但表格本身應該對齊。xtable和頭對齊

+1

沒有提供任何示例。可能你應該看看錶格包。 – 2013-02-21 01:23:24

回答

5

做,在乳膠你堅持你的頭變成\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} 

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}") 

那麼最所做的工作,你只需要打印覆蓋的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} 

否則它

& $\backslash$multicolumn\{1\}\{c\}\{x\} & $\backslash$multicolumn\{1\}\{c\}\{y\} \\ 

那是怎麼回事?

+0

太棒了!非常感謝! – hejseb 2013-02-21 16:00:34

3

只是爲了跟進Spacedman答案(不能添加爲我reputationless評論;)

而不是做sanitize.colnames.function=function(x){x}你可以這樣做:

sanitize.colnames.function=function(x){paste0("\\multicolumn{1}{c}{",x,"}")} 

這樣,您就可以跳過重命名步。如果你想/做其他的標題「美化」,他們應該在paste0之間或逗號(如果簡稱)之間完成