R语言 我想使用的列名称,其中选择的用户在flextable

ivqmmu1c  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(151)

我想将分组列加粗。但是函数bold不接受列名的字符串类型。如何使input[[paste0("options_agg_", input$tabs)]]在粗体功能中选择行?
这是可行的:

ft <- as_grouped_data(filtered_other(), groups = input[[paste0("options_agg_", input$tabs)]], columns = input[[paste0("options_dim_", input$tabs)]]) %>%
      as_flextable() %>%
      bold(i = ~ !is.na(Product.category))
    
    htmltools_value(ft)

而这并不:

ft <- as_grouped_data(filtered_other(), groups = input[[paste0("options_agg_", input$tabs)]], columns = input[[paste0("options_dim_", input$tabs)]]) %>%
      as_flextable() %>%
      bold(i = ~ !is.na(input[[paste0("options_agg_", input$tabs)]]))
    
    htmltools_value(ft)

我不希望它总是设置为Product.category
我试过:as.formula.我还考虑了eval和parse。但我没成功

rwqw0loc

rwqw0loc1#

一个选项是使用reformulate创建公式对象。
使用基于mtcars的最小可重现示例:

library(flextable)
library(magrittr)

col <- "mpg"

fml <- reformulate(paste0("!is.na(", col, ")"))

fml
#> ~!is.na(mpg)

ft <- as_grouped_data(mtcars, groups = "cyl", columns = c("cyl", "mpg")) %>%
  as_flextable() %>%
  bold(i = fml)

ft

相关问题