关于stargazer是否仍支持starprep及回归表格生成报错的技术咨询
关于stargazer是否仍支持starprep及回归表格生成报错的技术咨询
看起来你遇到的问题核心是starprep函数找不到,而之前能正常运行,大概率是包依赖或者会话环境的问题,我来帮你梳理下可能的解决思路:
1. 先确认starprep的归属包是否已加载
首先要明确:starprep不是stargazer包自带的函数,它属于texreg包的工具函数。如果你的R会话重启后没加载texreg,就会出现“找不到starprep”的报错。
解决步骤:
- 先安装(如果没装过)并加载
texreg包:
install.packages("texreg") # 仅第一次需要安装 library(texreg)
加载完成后再重新运行你的stargazer代码试试。
2. 检查starprep的参数是否正确
从你的代码注释来看,你想做聚类稳健标准误(按year聚类),但当前的starprep调用里没指定聚类变量,可能会导致计算逻辑不符合预期,甚至触发隐藏错误。建议补充cluster参数:
se = starprep(tax_GD, tax_GDfe, se_type = "stata", cluster = dat$year),
3. 备选方案:不依赖starprep,手动计算稳健标准误
如果不想依赖texreg包,也可以用sandwich包直接计算稳健标准误,然后传给stargazer的se参数,兼容性更强:
# 先加载必要的包 library(sandwich) library(lmtest) # 分别计算两个模型的稳健标准误 # 第一个模型:普通稳健标准误 se_tax_GD <- sqrt(diag(vcovHC(tax_GD, type = "HC1"))) # 第二个模型:按year聚类的稳健标准误 se_tax_GDfe <- sqrt(diag(vcovCL(tax_GDfe, cluster = ~year, type = "HC1"))) # 传入stargazer stargazer(tax_GD, tax_GDfe, type = "html", title = "Regression of <em> Tax </em> on GDPppg", notes.label = "P-Values", notes = "Standard errors are robust", df = FALSE, notes.align = "l", covariate.labels = "GDP", dep.var.labels = c("Taxes"), se = list(se_tax_GD, se_tax_GDfe), # 手动传入标准误列表 omit = c("iso3c", "year"), out = "fixed_effects_GDPTAX.html", add.lines = list(c('Fixed effects', 'No', 'Yes')))
额外排查点
- 检查
stargazer和texreg的版本:如果是最近更新了包,可能存在参数兼容问题,尝试回退到之前能用的版本(比如用devtools::install_version("stargazer", version = "x.x.x")) - 确认回归对象
tax_GD和tax_GDfe是有效的lm/felm等回归模型,没有损坏或格式错误
备注:内容来源于stack exchange,提问作者Wilson Okoth
相关产品推荐
相关产品推荐

