flextable:加粗每行中的最大值

flextable: bold the maximum value in each row

我正在尝试使用此代码将每一行中的最大值加粗

mtcars %>% 
  flextable() %>%
  bold(max(.[1:32,]))

并收到此错误:Error in .[1:32, ] : incorrect number of dimensions

我也尝试过,灵感来自

mtcars %>% 
  flextable() %>%
  bold(~ max(.), 1) 
Error in eval(as.call(f[[2]]), envir = data) : object '.' not found

删除 max(.) 中的 . 没有任何区别。

要加粗最大值,我相信你必须分别做每一列。

这里我用了两列,只把变量加粗的列做了。

library(tidyverse)
library(flextable)

data(mtcars)

mtcars %>% 
  flextable() %>%
  bold(~mpg == max(mpg), 1) %>% 
  bold(~drat == max(drat), 5)

要从每一行中获取最大值,您可以尝试覆盖 flextable 对象的属性:

编辑:

如评论中所述,不建议手动更改对象结构:

library(magrittr)
mtcars %>% 
  flextable::flextable()  -> bold_flex2

for(i in seq_len(nrow(mtcars)))
{
  bold_flex2 %<>% flextable::bold(i, which.max(mtcars[i,]))
}
bold_flex2

旧答案:

library(magrittr)

mtcars %>% 
  flextable::flextable() -> bold_flex

for(i in seq_len(nrow(mtcars)))
{
  bold_flex$body$styles$text$bold$data[i, which.max(mtcars[i,])] <- TRUE
}