【问题标题】:Removing table components in stargazer在 stargazer 中删除表格组件
【发布时间】:2022-01-05 22:19:54
【问题描述】:

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

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

我知道我可以手动覆盖表格组件,但有没有一种方法可以自动为除 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) 

【问题讨论】:

标签: r formatting tidyverse stargazer


【解决方案1】:

您在评论中询问stargazer 的替代品是否可以帮助您 有了这个。答案是“是”,the modelsummary package 可以这样做 比较容易。 (免责声明:我是维护者。)

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

首先,我们从一个带有漂亮标签的基本表格开始:

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)

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

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

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

因此,我们的自定义函数将被称为tidy_custom.lm。说 您的目标是从 表,但仅适用于变量 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)

【讨论】:

  • 太棒了!谢谢
猜你喜欢
  • 1970-01-01
  • 2021-12-11
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 2014-11-06
  • 2013-04-21
相关资源
最近更新 更多