首页 > 解决方案 > 如何在 flextable 中按行(不是整列)使用条件格式

问题描述

尝试在 flextable 中使用 scales::col_numeric 函数来有条件地格式化表的一部分。

使用 flextable 自己的文档:

library(flextable)

ft_2 <- flextable(head(iris))
colourer <- col_numeric(
  palette = c("wheat", "red"),
  domain = c(0, 7))


bg(ft_2, 
   j = c("Sepal.Length", "Sepal.Width",
         "Petal.Length", "Petal.Width"),
   bg = colourer)


但是如果只格式化前 2 行会导致错误。

bg(ft_2, 
   i = 1:2,
   j = c("Sepal.Length", "Sepal.Width",
         "Petal.Length", "Petal.Width"),
   bg = colourer)

x$data[i, j] <- value 中的错误:要替换的项目数不是替换长度的倍数

在 colourer 中抛出 debug() 表明 x 是整个列而不是前 2 行。

任何帮助是极大的赞赏。

标签: rformattingflextable

解决方案


这可能是一个问题,packageVersion('flextable')因为这适用于 ( 0.6.6) 和packageVersion('scales') 1.1.1`

library(flextable)
ft_2 <- flextable(head(iris))
colourer <- col_numeric(
  palette = c("wheat", "red"),
  domain = c(0, 7))

bg(ft_2, 
    i = 1:2,
    j = c("Sepal.Length", "Sepal.Width",
          "Petal.Length", "Petal.Width"),
    bg = colourer)

-输出

在此处输入图像描述


推荐阅读