texreg中如何用omit.coef参数忽略多个固定效应变量?
解决texreg中忽略多个固定效应系数的问题
我之前也踩过这个坑!texreg的omit.coef参数本质上是用正则表达式匹配系数名称,而不是直接接受向量输入,所以你直接传c('STORE_ID','Year')才会失效。下面给你两种可行的解决方法:
方法1:用正则表达式的"或"操作匹配多个变量
把你想忽略的变量名用|连接起来,这样正则表达式会匹配任何包含其中一个关键词的系数名。比如你的场景里,这样写就可以:
screenreg(lm01, omit.coef='STORE_ID|Year', custom.model.names = c("AA"))
这个写法会自动过滤掉所有名称中包含STORE_ID或Year的系数(比如固定效应生成的STORE_ID1、Year2020这类都会被匹配到)。
方法2:更精确的开头匹配(推荐)
如果你的变量名可能有重叠(比如有个变量叫YearlySales),可以用^符号限定匹配开头,避免误删其他系数:
screenreg(lm01, omit.coef='^STORE_ID|^Year', custom.model.names = c("AA"))
这个写法只会匹配以STORE_ID或Year开头的系数,更精准。
完整示例验证
假设你的模型是这样的(包含两类固定效应):
library(texreg) # 构造带固定效应的模型(比如用factor转换) lm01 <- lm(Sales ~ Price + factor(STORE_ID) + factor(Year), data = your_data) # 输出时忽略两类固定效应 screenreg(lm01, omit.coef='^factor\\(STORE_ID\\)|^factor\\(Year\\)', custom.model.names = c("AA"))
注意:如果你的固定效应是用factor()生成的,系数名会变成factor(STORE_ID)1这样的形式,这时候需要把括号转义(用\\(和\\)),正则表达式才能正确匹配。
内容的提问来源于stack exchange,提问作者John legend2
相关产品推荐
相关产品推荐

