【发布时间】:2021-03-19 23:47:58
【问题描述】:
我使用 kableExtra 包在 R 中有下表。我想有条件地格式化表格中的最后一行,如果值为正,我可以将单元格的背景颜色更改为绿色,如果值为负,则为红色。
library(kableExtra)
library(tidyverse)
data <- structure(list(Category = c("ICE BoA 0-3 Yr", "ICE BoA 1-5 Yr",
"JP Morgan 1-10 Yr", "USD/ZAR"), `Global Financial Crisis` = c(0.32,
0.26, 0.29, 0.08), `Taper Tantrum` = c(0.31, 0.43, 0.43, 0.14
), `Covid Crisis` = c(0.12, 0.57, 0.52, 0.29), `Entire Reference Period` = c(0.31,
0.31, 0.22, -0.26)), row.names = c(NA, -4L), class = c("tbl_df",
"tbl", "data.frame"))
kable %>% kable(align = 'lcccc') %>%
kable_styling(font_size = 30) %>%
column_spec(1, bold = T) %>%
row_spec(0, col = 'white', background = '#7c3042')
如果我正在格式化列,在将我的数据框放入 kableExtra 之前,使用简单的 mutate 参数来执行此操作会很简单。关于如何为特定行执行此操作的任何想法?
mutate(
`Column Name` = cell_spec(`Column Name`, color = ifelse(`Column Name` > 0, "white", "white"),
background = ifelse(`Column Name` > 0, "green", "red")))
TIA
【问题讨论】: