在 R markdown cell_spec 中使用 kableExtra 选择并着色单个 table 单元格
Selecting and colouring single table cells with kableExtra in R markdown cell_spec
我结合使用 R markdown 和 LaTeX 创建动态 PDF 报告。为了生成摘要 tables,我使用 kableExtra 包。
我想更改单个单元格的样式。
示例:考虑 R 数据帧 mtcars[1:10, 1:5]
。使用它会被渲染成一些不错的 table:
kable(mtcars[1:10, 1:5], format="latex", booktabs = T)`
现在我想改变某些单元格的样式。假设 mpg 的第 2 和第 8 个条目应该是绿色,disp 的第 4 个和第 5 个条目应该是橙色和斜体,drat 应该是红色和粗体。同样的单元格应该是这样的,无论单元格中有哪些条目。
我完全了解文档和示例,例如特定于行和列的着色。但是 cell_spec 的文档仅处理取决于单元格值的条件逻辑,而我想独立地为单元格着色。
如您所见,如果要为整行或整列着色,cell_spec
函数很有用。由于 kableExtra
不提供直接编辑单个单元格的功能,因此 "easiest" 的方法是直接将 LaTeX 命令粘贴到单元格中。我在类似的答案中使用了这种方法 :
---
output: pdf_document
header-includes:
- \usepackage{booktabs}
---
```{r pressure, echo=FALSE}
df <- mtcars[1:10, 1:5]
df[1,5] <- paste0("\underline{", df[1,5], "}")
df[1,1] <- paste0("\textcolor{red}{", df[1,1], "}")
df[2,2] <- paste0("\textcolor{green}{\textbf{", df[2,2], "}}")
# # Equivalent to:
# library(kableExtra)
# df[1, 5] <- cell_spec(df[1, 5], "latex", underline = T)
# df[1, 1] <- cell_spec(df[1, 1], "latex", color = "red")
# df[2, 2] <- cell_spec(df[2, 2], "latex", color = "green", bold = T)
knitr::kable(df, format="latex", booktabs = T, escape = F)
```
您可以调整它以适用于您的示例。您可能想在此处查看可用的 LaTeX 格式:https://www.sharelatex.com/learn/Bold,_italics_and_underlining
我结合使用 R markdown 和 LaTeX 创建动态 PDF 报告。为了生成摘要 tables,我使用 kableExtra 包。
我想更改单个单元格的样式。
示例:考虑 R 数据帧 mtcars[1:10, 1:5]
。使用它会被渲染成一些不错的 table:
kable(mtcars[1:10, 1:5], format="latex", booktabs = T)`
现在我想改变某些单元格的样式。假设 mpg 的第 2 和第 8 个条目应该是绿色,disp 的第 4 个和第 5 个条目应该是橙色和斜体,drat 应该是红色和粗体。同样的单元格应该是这样的,无论单元格中有哪些条目。
我完全了解文档和示例,例如特定于行和列的着色。但是 cell_spec 的文档仅处理取决于单元格值的条件逻辑,而我想独立地为单元格着色。
如您所见,如果要为整行或整列着色,cell_spec
函数很有用。由于 kableExtra
不提供直接编辑单个单元格的功能,因此 "easiest" 的方法是直接将 LaTeX 命令粘贴到单元格中。我在类似的答案中使用了这种方法
---
output: pdf_document
header-includes:
- \usepackage{booktabs}
---
```{r pressure, echo=FALSE}
df <- mtcars[1:10, 1:5]
df[1,5] <- paste0("\underline{", df[1,5], "}")
df[1,1] <- paste0("\textcolor{red}{", df[1,1], "}")
df[2,2] <- paste0("\textcolor{green}{\textbf{", df[2,2], "}}")
# # Equivalent to:
# library(kableExtra)
# df[1, 5] <- cell_spec(df[1, 5], "latex", underline = T)
# df[1, 1] <- cell_spec(df[1, 1], "latex", color = "red")
# df[2, 2] <- cell_spec(df[2, 2], "latex", color = "green", bold = T)
knitr::kable(df, format="latex", booktabs = T, escape = F)
```
您可以调整它以适用于您的示例。您可能想在此处查看可用的 LaTeX 格式:https://www.sharelatex.com/learn/Bold,_italics_and_underlining