1

我是 LaTeX、Knitr 和 xtable 的新手。具体来说,当构建一个表,然后用 xtable 包打印它时,我怎么能:

  1. 加粗一整列,包括标题。就我而言,表格的最后一列是总和列,这就是我需要加粗的地方。我在这里能找到的最相似的问题是: 添加行或用 print.xtables 加粗单个 row.names - 在行之间添加一些东西?
  2. 在 Microsoft Word/Excel 中,可以将格式为“-1”的负值替换为“(1)”。这在R中可能吗?

感谢您的所有时间和考虑。我已经阅读了 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 输出包括一个加粗的最后一列(包括标题)和用“()”而不是“-”替换的负值。

4

2 回答 2

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 中对我来说是成功的。

于 2013-10-30T01:37:21.803 回答
0

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

thirdTable[,ncol(thirdTable)] = paste0('\\textbf{',thirdTable[,ncol(thirdTable)],'}')
于 2019-08-09T12:56:18.750 回答