xtable如何进行单元格着色
how can xtable do cell coloring
我在 .RMD 文件中有这个 table,我想在 PDF 中使用条件格式呈现。目前我正在使用 pandoc。如何使用 xtable 完成此操作?
table = data.frame(category = c("A","B","C"), groupA = c(.2,.3,.5), groupB= c(.6,.7,.9))
table
pandoc.table(table,split.table = Inf,keep.line.breaks = TRUE)
----------------------------
category groupA groupB
---------- -------- --------
A 0.2 0.6
B 0.3 0.7
C 0.5 0.9
----------------------------
如何使用条件格式为 "groupA" 和 "groupB" 列的单元格着色:
>0 and <= .2 = "green"
>.2 and <= .3 = "red"
>.3 and <= .4 = "blue"
>.4 and <= .5 = "orange"
>.5 and <= .6 = "yellow"
>.6 and <= .7 = "black"
>.7 and <= .8 = "brown"
>.8 = "white"
你可以看看格式化包
例如
library(formattable)
formattable(table,
list(groupA = color_tile("white", "orange"))
)
您可以将相关的 table 条目包装在乳胶代码 (from here) 中,然后清理 xtable 结果。
示例:
---
header-includes:
- \usepackage{xcolor, colortbl}
output:
pdf_document
---
```{r, results="asis"}
library(xtable)
# Your data
tab = data.frame(category = c("A","B","C"), groupA = c(.2,.3,.5), groupB= c(.6,.7,.9))
# Function to cut your data, and assign colour to each range
f <- function(x) cut(x, c(0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, Inf),
labels=c("green", "red", "blue", "orange", "yellow", "purple", "brown", "white"),
include.lowest = FALSE, right = TRUE)
# Apply function to columns: this overwrites your data
tab[c("groupA", "groupB")] <- lapply(tab[c("groupA", "groupB")], function(x)
paste0("\cellcolor{", f(x), "}", x))
# Sanitise output
print(xtable(tab), sanitize.text.function = identity)
```
产生
我在 .RMD 文件中有这个 table,我想在 PDF 中使用条件格式呈现。目前我正在使用 pandoc。如何使用 xtable 完成此操作?
table = data.frame(category = c("A","B","C"), groupA = c(.2,.3,.5), groupB= c(.6,.7,.9))
table
pandoc.table(table,split.table = Inf,keep.line.breaks = TRUE)
----------------------------
category groupA groupB
---------- -------- --------
A 0.2 0.6
B 0.3 0.7
C 0.5 0.9
----------------------------
如何使用条件格式为 "groupA" 和 "groupB" 列的单元格着色:
>0 and <= .2 = "green"
>.2 and <= .3 = "red"
>.3 and <= .4 = "blue"
>.4 and <= .5 = "orange"
>.5 and <= .6 = "yellow"
>.6 and <= .7 = "black"
>.7 and <= .8 = "brown"
>.8 = "white"
你可以看看格式化包
例如
library(formattable)
formattable(table,
list(groupA = color_tile("white", "orange"))
)
您可以将相关的 table 条目包装在乳胶代码 (from here) 中,然后清理 xtable 结果。
示例:
---
header-includes:
- \usepackage{xcolor, colortbl}
output:
pdf_document
---
```{r, results="asis"}
library(xtable)
# Your data
tab = data.frame(category = c("A","B","C"), groupA = c(.2,.3,.5), groupB= c(.6,.7,.9))
# Function to cut your data, and assign colour to each range
f <- function(x) cut(x, c(0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, Inf),
labels=c("green", "red", "blue", "orange", "yellow", "purple", "brown", "white"),
include.lowest = FALSE, right = TRUE)
# Apply function to columns: this overwrites your data
tab[c("groupA", "groupB")] <- lapply(tab[c("groupA", "groupB")], function(x)
paste0("\cellcolor{", f(x), "}", x))
# Sanitise output
print(xtable(tab), sanitize.text.function = identity)
```
产生