正在删除 stargazer 中的 table 个组件

Removing table components in stargazer

我正在使用 stargazer 将 table 放在一起,并使用 RMarkdown 将它们呈现在 HTML 文件中。下面粘贴了创建图像的可重现代码。

我想删除与常量(下图中的“Alpha”)相关的星号和标准误差。

我知道我可以手动覆盖 table 组件,但是有什么方法可以自动保留除 alpha 行以外的所有内容的星标和 SE?将所有内容重新写入字符向量似乎有点麻烦。

代码:

library(tidyverse)
library(stargazer) 

mdl1 <- lm(mpg~wt, mtcars)
mdl2 <- lm(mpg~disp, mtcars)

mdls <- list(mdl1,mdl2)

column.labels <- c('model 1',
                   'model 2')

covariate.labels <- c('Beta 1',
                      'Beta 2',
                      'Alpha')

keep.stat <- c('n')

stargazer(mdls, type = 'html',
          column.labels = column.labels,
          covariate.labels = covariate.labels,
          column.sep.width = "10pt",
          dep.var.labels.include = F,
          keep.stat = keep.stat) 

在您询问 stargazer 的替代方案是否可以帮助您的评论中 有了这个。答案是肯定的,modelsummary package 可以做到这一点 比较容易。 (免责声明:我是维护者。)

我说“相对”是因为你问的很特别,所以 我不认为你应该期望它在任何情况下都能开箱即用 包裹。但这里有一个例子。

首先,我们从带有漂亮标签的基本 table 开始:

library(modelsummary)
library(broom)

models <- list(
    lm(mpg ~ wt + hp, mtcars),
    lm(mpg ~ disp + hp, mtcars))

coef_map <- c(
    "wt" = "Weight",
    "disp" = "Displacement",
    "hp" = "Horse Power")

modelsummary(models, stars = TRUE, coef_map = coef_map)

自定义现有模型 节 的文档解释说 modelsummary 允许您 通过定义覆盖任何估计值(系数、标准误差、p 值等) 一个名为 tidy_custom.CLASSNAME 的新函数,其中 CLASSNAME 指的是 到您要总结的模型对象的类型。

在我们上面的示例中,我们总结了 lm 个模型:

class(models[[1]])
## [1] "lm"

因此,我们的自定义函数将被称为tidy_custom.lm。说 您的目标是从中删除标准误差、星号和 p 值 table,但仅针对变量 hp。我们能做的就是覆盖 估计 NA (请参阅上面链接的文档以获得 详细解释):

tidy_custom.lm <- function(model) {
  out <- tidy(model)
  out$p.value[out$term == "hp"] <- NA
  out$std.error[out$term == "hp"] <- NA
  return(out)
}
    
modelsummary(models, stars = TRUE, coef_map = coef_map)