【问题标题】:Using Flextable in a Function in R在 R 的函数中使用 Flextable
【发布时间】:2020-05-21 23:33:03
【问题描述】:

我正在尝试在使用 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$3","ft$10")


但我收到一个错误 总结时出错:找不到对象“mv1”

任何想法,我应该改变什么?

【问题讨论】:

    标签: r function flextable


    【解决方案1】:

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

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

    使用mtcars 作为示例数据和简单条件mv1 &gt; 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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2019-03-11
      • 2018-09-02
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多