1

gt 包是相当新的,但想看看是否有一种方法可以根据多列的内容有条件地格式化。

gt 的默认设置似乎仅按列有条件地格式化。

因此,在此示例中,尽管 y 列明显更大,但两列的颜色相同。

library(gt)

data.frame(
  x = 1:10, 
  y = 101:110) %>% 
  gt() %>% 

data_color(
  columns = c("x", "y"),
  colors = scales::col_numeric(
    palette = c("#d67f90", "white", "#689d7c"),
    domain = NULL
  )
)

在此处输入图像描述

是否可以使用所有数据有条件地格式化;这样,gt 表可能看起来像这样(通过良好的 ole' Excel)。 在此处输入图像描述

谢谢!

4

1 回答 1

4

您需要设置的domain参数scales::col_numeric()

library(gt)

df <- data.frame(
  x = 1:10, 
  y = 101:110) 
  
gt(df) %>% 
data_color(
  columns = c("x", "y"),
  colors = scales::col_numeric(
    palette = c("#d67f90", "white", "#689d7c"),
    domain = range(c(df$x, df$y))
  )
)

在此处输入图像描述

于 2020-06-23T19:27:18.753 回答