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

gtsummary的tbl_regression中multinom模型标签格式设置失效如何解决?

解决gtsummary中multinom模型标签无法用bold_labels/italicize_labels格式化的问题

问题复现

以下代码可重现问题:glm二分类模型的标签能正常应用粗体+斜体,但multinom多分类模型的标签无变化。

# 加载依赖包
library(gtsummary)
library(nnet)
library(tidyverse)

# 生成模拟数据
set.seed(123)
df <- tibble(
  y = factor(sample(c("A", "B", "C"), 100, replace = TRUE)),
  x1 = rnorm(100),
  x2 = factor(sample(c("Yes", "No"), 100, replace = TRUE))
)

# glm模型:标签格式生效
glm_model <- glm(y == "B" ~ x1 + x2, data = df, family = binomial)
tbl_glm <- tbl_regression(glm_model, exponentiate = TRUE) %>%
  bold_labels() %>%
  italicize_labels()
tbl_glm

# multinom模型:标签格式不生效
multinom_model <- multinom(y ~ x1 + x2, data = df, trace = FALSE)
tbl_multinom <- tbl_regression(multinom_model, exponentiate = TRUE) %>%
  bold_labels() %>%
  italicize_labels()
tbl_multinom

问题原因

bold_labels()和italicize_labels()默认仅适配二分类glm这类结构简单的模型标签,multinom多分类模型的表格会按分类水平生成行组,标签单元格的匹配规则未被默认函数覆盖,导致样式不生效。

解决方案

方法1:用modify_table_styling指定样式

直接定位标签行,手动设置粗体+斜体样式:

tbl_multinom_fixed <- tbl_regression(multinom_model, exponentiate = TRUE) %>%
  modify_table_styling(
    columns = label,
    rows = row_type == "label",
    text_format = c("bold", "italic")
  )

方法2:通过Markdown语法手动格式化

利用gt::md()解析粗斜体Markdown语法(***包裹文本):

tbl_multinom_fixed2 <- tbl_regression(multinom_model, exponentiate = TRUE) %>%
  modify_fmt_fun(
    columns = label,
    rows = row_type == "label",
    fmt_fun = function(x) gt::md(paste0("***", x, "***"))
  )

两种方法都能实现变量标签的粗体+斜体效果,和glm模型的样式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:20:18