xtable粗体列和格式负值

时间:2013-10-29 23:37:24

标签: r latex knitr xtable

我是LaTeX,Knitr和xtable的新手。具体来说,在构建表格然后使用xtable包打印时,我该怎么做:

  1. 加粗整列,包括标题。在我的例子中,表的最后一列是sum列,这就是我需要加粗的。我在这里可以找到的最相似的问题是: adding rows or boldify single row.names with print.xtables – add something in between rows?
  2. 在Microsoft Word / Excel中,可以用“(1)”替换格式为“-1”的负值。这可能在R?
  3. 感谢您的所有时间和考虑。我已经阅读了Hmisc包,但是我不明白它是否可以帮助我解决这些问题。

    编辑:

    我正在使用的R代码块看起来像这样。

    <<echo=FALSE,results='asis'>>
    
    thirdTable <- table.CalendarReturns(port_returns, digits=2)
    tli.table <- xtable(thirdTable, align="rccccccccccccc")
    print(tli.table, floating = FALSE, size="\\tiny", scalebox=1.57)
    
    @
    

    为了澄清我的问题,我希望能够在该R块中进行格式化,以便我的LaTeX输出包括粗体的最后一列(包括标题)和负值替换为“()”而不是“ - ”。

2 个答案:

答案 0 :(得分:0)

使用?xtable帮助页面中第一个示例的输出,将一种格式添加到列规范中。 {\bfseries}需要有一个>

\documentclass{article}

\usepackage{booktabs,dcolumn}

\begin{document}

% latex table generated in R 3.0.2 by xtable 1.7-1 package
% Tue Oct 29 18:22:49 2013

% latex table generated in R 3.0.2 by xtable 1.7-1 package
% Tue Oct 29 18:22:49 2013
\begin{table}[ht]
\centering
\begin{tabular}{rrl>{\bfseries}llr}
% Edit above line
  \hline
 & grade & sex & disadvg & ethnicty & tlimth \\ 
  \hline
1 & 6 & M & YES & HISPANIC & 43 \\ 
  2 & 7 & M & NO & BLACK & 88 \\ 
  3 & 5 & F & YES & HISPANIC & 34 \\ 
  4 & 3 & M & YES & HISPANIC & 65 \\ 
  5 & 8 & M & YES & WHITE & 75 \\ 
  6 & 5 & M & NO & BLACK & 74 \\ 
  7 & 8 & F & YES & HISPANIC & 72 \\ 
  8 & 4 & M & YES & BLACK & 79 \\ 
  9 & 6 & M & NO & WHITE & 88 \\ 
  10 & 7 & M & YES & HISPANIC & 87 \\ 
  11 & 3 & M & NO & WHITE & 79 \\ 
  12 & 6 & F & NO & WHITE & 84 \\ 
  13 & 8 & M & NO & WHITE & 90 \\ 
  14 & 5 & M & NO & WHITE & 73 \\ 
  15 & 8 & F & NO & WHITE & 72 \\ 
  16 & 6 & F & NO & BLACK & 82 \\ 
  17 & 4 & M & NO & WHITE & 69 \\ 
  18 & 3 & F & YES & HISPANIC & 17 \\ 
  19 & 3 & M & NO & HISPANIC & 37 \\ 
  20 & 5 & M & NO & WHITE & 70 \\ 
   \hline
\end{tabular}
\end{table}

\end{document}

你可能需要\usepackage{array},但这个代码似乎在Texshop.app中取得了成功。

答案 1 :(得分:0)

您可以将每个列条目更改为分别标记为粗体。

thirdTable[,ncol(thirdTable)] = paste0('\\textbf{',thirdTable[,ncol(thirdTable)],'}')