You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RMarkdown中如何将data.frame每列最大值设置为粗体显示

RMarkdown表格每列最大值加粗实现方案

你可以借助kableExtra的cell_spec函数提前对数据框内容做格式标记,渲染表格时关闭内容转义即可实现需求,完整可运行代码如下:

# 加载依赖包
library(dplyr)
library(knitr)
library(kableExtra)

# 构造示例数据
data <- data.frame(A=c(1,2,4,3),  B=c(8,7,9,10), C=c(14,12,13,11), D=c(15,18,17,16))
rownames(data) <- c("E", "F", "G", "H")

# 遍历所有列,给最大值添加粗体格式标记
data_formatted <- data %>%
  mutate(across(everything(), ~ifelse(.x == max(.x), cell_spec(.x, bold = TRUE), .x)))

# 渲染表格,注意必须设置escape = FALSE才能正常解析格式标记
kable(data_formatted, escape = FALSE) %>%
  kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover", "condensed"), 
  ) %>%
  add_header_above(c( '', Group1 = 2, Group2 = 2))

注意事项

  • 如果你只需要处理指定列,把across(everything())里的everything()换成对应列名的向量即可,比如c(A,B,D)
  • 如果某列存在多个相同最大值,上述代码会将所有最大值都加粗,如果你只需要标记第一个最大值,可以将判断条件改为ifelse(.x == max(.x) & cumsum(.x == max(.x)) == 1, cell_spec(.x, bold = TRUE), .x)
  • 该方案同时兼容HTML和PDF格式的RMarkdown输出,无需额外适配。

内容的提问来源于stack exchange,提问作者Melih Aras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 05:12:02