如何在R的stargazer表格中手动移动Observations行并堆叠条目?
解决方案
要实现你需要的表格格式调整,可以通过以下两步修改stargazer的调用逻辑:
1. 手动控制Observations的位置
默认情况下stargazer会把Observations放在统计量区域的最后,我们可以先禁用默认的统计量输出,再手动将Observations行添加到指定位置:
- 使用
keep.stat=NULL关闭默认统计量输出 - 在
add.lines中手动加入Observations行,放在Method行之前
2. 实现HR Robust的多行对齐
将三个True拆分为独立的行,通过空字符串占位第一列来实现对齐效果:
- 第一行写
c("HR Robust", "True") - 后续两行写
c("", "True"),这样第二列的True会自动对齐
修改后的完整代码
# 加载依赖包 library(stargazer) library(sandwich) library(lmtest) # 数据与模型构建 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) group <- gl(2, 10, 20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) # 计算稳健标准误 se1 <- round(coeftest(lm.D9, vcov = vcovHC(lm.D9, type="HC1"))[,2],4) # 生成调整后的表格 stargazer(lm.D9, se=list(se1), keep.stat=NULL, # 关闭默认统计量输出 type="text", add.lines = list(c("Observations", length(lm.D9$residuals)), # 手动添加观测值行 c("Method","OLS"), c("HR Robust","True"), c("","True"), c("","True")))
输出效果
======================================== Dependent variable: --------------------------- weight ---------------------------------------- groupTrt -0.371 (0.322) Constant 5.032*** (0.194) ---------------------------------------- Observations 20 Method OLS HR Robust True True True ======================================== Note: *p<0.1; **p<0.05; ***p<0.01
内容的提问来源于stack exchange,提问作者user321627
相关产品推荐
相关产品推荐

