5

テーブルの残りの部分で使用されている配置とは異なるヘッダー配置を xtable に含めることは可能ですか? 私の場合、ヘッダーを中央揃えにしたいのですが、テーブル自体は右揃えにする必要があります。

4

2 に答える 2

9

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}

この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\} \\ 

どのようだ?

于 2013-02-21T15:30:10.550 に答える
5

Spacedmanによる回答をフォローアップするためだけに(私は評判が悪いのでコメントを追加できませんでした;)

する代わりに、次のsanitize.colnames.function=function(x){x}ことができます。

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

このようにして、名前の変更手順をスキップできます。他のヘッダーの「美化」を行う/行いたい場合は、コンマの前paste0またはコンマの間 (短い場合)に行う必要があります。

于 2016-05-31T19:20:04.973 に答える