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

如何调整texreg包plotreg所用gl函数使变量标签支持上标下标

解决texreg包plotreg函数系数标签上下标显示问题

你直接给gl()的labels参数传expression()失败的核心原因是:R的因子水平只能存储字符类型的值,无法直接保留表达式格式用于绘图渲染,正确的做法是在调用plotreg()时通过其内置的自定义系数名参数传入plotmath表达式。

以下是可直接运行的修改后示例:

library(texreg)

ctl <- c(4.17, 5.58, 5.18, 6.11, 4.50, 4.61, 5.17, 4.53, 5.33, 5.14)
trt <- c(4.81, 4.17, 4.41, 3.59, 5.87, 3.83, 6.03, 4.89, 4.32, 4.69)
# gl的labels保持普通字符即可,无需修改
group <- gl(2, 10, 20, labels = c("Ctl", "Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
lm.D90 <- lm(weight ~ group - 1)

# 示例1:绘制带截距的模型,Trt标签显示下标2
plotreg(lm.D9,
        custom.coef.names = c(
          "截距", # 对应第一个系数:截距项
          expression(Trt[2]) # 对应第二个系数:groupTrt,渲染为Trt下标2
        ))

# 示例2:绘制无截距的模型,Ctl显示上标2、Trt显示下标2
plotreg(lm.D90,
        custom.coef.names = c(
          expression(Ctl^2), # 对应第一个系数:groupCtl,渲染为Ctl上标2
          expression(Trt[2]) # 对应第二个系数:groupTrt,渲染为Trt下标2
        ))

使用注意事项

  • 传入custom.coef.names的向量长度要和模型的系数数量完全一致,顺序也要和模型summary输出的系数顺序对应,否则会出现标签错位
  • 上下标写法遵循R的plotmath语法规则:上标用^,下标用[],复杂格式可以用bquote()、parse()等函数批量生成
  • 如果需要同时传入多个模型的自定义标签,可以给custom.coef.names传入和模型数量对应的列表,每个子列表对应一个模型的标签

内容的提问来源于stack exchange,提问作者Chris T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:36:07