用于根据列值设置颜色的 R tablegrob 条件格式

R tablegrob conditional formating for setting colors based on column values

有没有一种方法可以根据条件格式对 tableGrob 或 gtable 对象的列及其颜色(红色、黄色或绿色)进行条件格式化?例如:

library(gridExtra)
library(grid)
d = head(iris, 20)
d
grob=tableGrob(d)

我想更改 Sepal.Width 并根据 Petal.Length 的值为其着色。如果 Petal.Length = 1.1 则设置为红色,如果为 1.4 则设置为黄色,如果为 1.7 则设置为绿色。

condformat 包可以用于此,它的语法是不言自明的,我相信:

library(condformat)
data(iris)
condformat(head(iris, 20)) %>%
  rule_fill_discrete(
    columns = Sepal.Width,
    expression = Petal.Length,
    colours = c("1.1" = "red", "1.4" = "yellow", "1.7" = "green")) %>%
  condformat2grob()