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

Shiny应用中如何将表格第一行设置为粗体?

解决Shiny中表格第一行加粗的问题

用renderTable实现需求

renderTable默认会将HTML标签转义为纯文本显示,所以要让粗体标签生效,必须添加escape = FALSE参数关闭转义。同时给第一行的目标内容包裹<b>标签即可:

output$variableValues <- renderTable({
  # 给第一行所有列添加粗体标签(仅需特定列可替换everything()为列名,比如Class)
  pred_probabilities_with_names <- pred_probabilities_with_names %>%
    mutate(across(everything(), ~ifelse(row_number() == 1, paste0("<b>", ., "</b>"), .)))
  pred_probabilities_with_names
}, rownames = FALSE, escape = FALSE)

核心要点:

  • escape = FALSE是关键,让Shiny解析HTML标签而非显示纯文本
  • 使用across(everything())可以批量处理第一行的所有列,按需替换为具体列名即可针对特定列设置

用DT包实现更优雅的样式控制

DT包提供了内置的样式设置方法,无需手动拼接HTML标签,可靠性更高:

方法1:使用formatStyle指定行样式

output$variableValues <- renderDataTable({
  datatable(pred_probabilities_with_names, options = list(dom = 't')) %>%
    formatStyle(
      0, # 0代表行索引
      target = "row",
      fontWeight = styleEqual(1, "bold") # 匹配行索引1(对应表格第一行)设置粗体
    )
})

方法2:用JavaScript回调自定义行样式

output$variableValues <- renderDataTable({
  datatable(pred_probabilities_with_names, options = list(
    dom = 't',
    rowCallback = JS(
      "function(row, data, index) {",
      "  // 索引0对应表格第一行",
      "  if (index === 0) {",
      "    $(row).css('font-weight', 'bold');",
      "  }",
      "}"
    )
  ))
})

内容的提问来源于stack exchange,提问作者Abner Mácola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:20:08