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

Flextable设置:将显著性星号加粗并去除其与系数的间距

实现方案

可通过两种方法实现显著性星号加粗且紧贴系数的需求:

方法1:原生flextable富文本实现

不需要额外依赖ftExtra,直接通过flextable自带的富文本构造函数处理:

library(huxtable)
library(flextable)
library(stringr)

# 生成基础回归表
ft <- lm(formula = mpg ~ cyl + hp, mtcars) %>% 
  huxreg() %>% 
  as_flextable()

# 批量处理系数列
ft <- ft %>%
  # 先删除系数和星号之间的空格,这里i对应系数行的范围、j对应模型系数列的范围,可根据实际表结构调整
  modify_at(
    .i = 3:5,
    .j = 2,
    .f = \(x) str_replace_all(x, "(\\d)\\s+(\\*+)", "\\1\\2")
  ) %>%
  # 拆分内容,将星号部分设置为加粗
  mk_par(
    .i = 3:5,
    .j = 2,
    value = as_paragraph(
      str_extract(.x, "^-?\\d*\\.?\\d+"),
      as_b(str_extract(.x, "\\*+$"))
    )
  )

# 输出结果
ft

方法2:配合ftExtra的markdown渲染实现

代码更简洁,适合多列批量处理的场景:

library(huxtable)
library(flextable)
library(ftExtra)
library(stringr)

ft <- lm(formula = mpg ~ cyl + hp, mtcars) %>% 
  huxreg() %>% 
  as_flextable() %>%
  # 匹配所有带星号的系数单元格,删除空格同时给星号套markdown加粗标记
  modify_at(
    .i = ~ str_detect(.x, "\\*"),
    .j = 2,
    .f = \(x) str_replace_all(x, "(\\d)\\s+(\\*+)", "\\1**\\2**")
  ) %>%
  # 对系数列启用markdown渲染
  colformat_md(j = 2)

ft

如果你的回归表包含多个模型列,只需调整上述代码中的j参数为所有模型列的序号即可,若系数行数量有变化,同步调整i参数的范围即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:06