在 R 函数中使用 Flextable

Using Flextable in a Function in R

我正在尝试在使用 flextable 包时在 R markdown 中创建一个用于条件格式设置的函数。 我正在尝试根据比较两列的条件为行设置颜色格式。


library(flextable)
library(dplyr)
cndnl_form <- function(data,mv1,ov1)

{
ft <- flextable({{data}})

ft <- color(ft, i = ~ ({{mv1}}- {{ov1}}/ abs({{mv1}}) > 0.25),
j = {{ov1}},
color="blue")

}

cndnl_form(df,"ft","ft")


但是我收到一个错误 总结期间出错:未找到对象 'mv1'

有什么想法,我应该更改什么?

我不确定 tidy eval 是否适用于这种情况。

但是,由于 flextable 允许公式规范,您可以将条件设​​置为公式字符串,然后可以将其转换为公式。

使用 mtcars 作为具有简单条件 mv1 > 20 的示例数据试试这个:

library(flextable)

cndnl_form <- function(data, mv1, ov1)
{
  ft <- flextable({{data}})

  #cond <- paste("~", "(", mv1, "-", ov1, ")", "/", "abs(", mv1, ") > 0.25")

  cond <- paste("~", mv1, "> 20")
  color(ft, i = as.formula(cond), j = as.formula(paste("~", ov1)), color="blue")
}

ft <- cndnl_form(head(mtcars), "mpg", "gear")