正在删除 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)
我正在使用 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)