You need to enable JavaScript to run this app. stargazer生成回归表时如何仅保留指定变量(对应omit的反向操作)
优惠活动
大模型
产品
解决方案
定价
更多

stargazer生成回归表时如何仅保留指定变量(对应omit的反向操作)

stargazer精准筛选输出变量的实现方案

核心问题原理

  • stargazer没有原生的单向“指定保留变量”的反向参数,但其omit参数基于正则规则匹配删除变量。此前使用omit = "Dummy1"误删三元交互项的原因是:该写法会匹配所有包含"Dummy1"字符串的变量,包括Dummy1主效应、所有带Dummy1的二元/三元交互项,无法做到精准拆分删除。
  • 仅需调整正则的匹配规则,即可实现精准删除,最终效果与“直接指定要保留的变量”完全一致。

精准删除同前缀主效应、不影响交互项的写法

通过正则首尾锚定符,让匹配规则仅识别名字完全等于目标值的独立变量,不会匹配带冒号的交互项:

stargazer(
  model1, 
  type = "text", 
  omit = "^Dummy1$"
)

其中^代表字符串开头,$代表字符串结尾,组合后仅会删除名为Dummy1的独立主效应行,所有带Dummy1的交互项(Dummy1:Dummy2、Dummy1:Dummy3、Dummy1:Dummy2:Dummy3)都会完整保留在输出中。

仅保留指定少数变量的实现路径

路径1:通过精准omit列表过滤(适配所有stargazer版本)

如果需要最终仅展示三元交互项Dummy1:Dummy2:Dummy3,只需要把所有非目标保留的变量通过带锚定的正则列在omit参数中即可,不会出现误删:

stargazer(
  model1,
  type = "text",
  omit = c(
    "^Dummy1$", "^Dummy2$", "^Dummy3$", # 删除所有单变量主效应
    "^Dummy1:Dummy2$", "^Dummy1:Dummy3$", "^Dummy2:Dummy3$", # 删除所有二元交互项
    "^Constant$" # 删除常数项
  )
)

输出表格将仅保留三元交互项的系数与标准误,无其他冗余行。

路径2:使用keep参数正向指定保留项(适配stargazer 5.2.3及以上版本)

当前高版本stargazer已新增和omit逻辑对称的keep参数,直接传入想要保留的变量的正则匹配规则即可,无需列全所有要删除的变量:

stargazer(
  model1,
  type = "text",
  keep = "Dummy1:Dummy2:Dummy3"
)

系统会自动过滤所有不匹配该规则的变量行,仅展示目标保留项。如果需要保留多个分散的变量,只要在keep参数中传入正则向量即可,比如同时保留常数项和三元交互项,写keep = c("^Constant$", "Dummy1:Dummy2:Dummy3")就能实现。

内容的提问来源于stack exchange,提问作者Guibor Camargo Salamanca

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 19:36:04