多个表中的 stargazer() 字幕
stargazer() captions in multiple tables
我有一个数据集,其中包含一些要汇总的变量和一个组成员指标
df <- data.frame(var1 = rnorm(100),
var2 = rnorm(100),
group = rep(c("A","B"), each = 50))
我想分别为组 A
和 B
生成摘要 table。我们可以使用 dplyr
和 purrr
来做到这一点,如下所示:
library(purrr)
library(dplyr)
df %>% split(. $group) %>% walk(~ stargazer(., type = "text", title = unique(df$group)))
A
==========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
----------------------------------------------------------
var1 50 0.371 1.044 -2.350 -0.251 1.043 2.545
var2 50 0.014 0.849 -2.212 -0.407 0.584 1.710
----------------------------------------------------------
A
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 0.016 1.246 -2.432 -1.107 0.879 2.551
var2 50 -0.031 0.975 -2.713 -0.682 0.465 2.022
-----------------------------------------------------------
我天真地试图通过将 unique(df$group)
移交给 stargazer()
的 title
参数来将组名引入为 table 标题。当我们这样做时,只使用提供的 table 标题向量的第一个元素,因此所有 tables 都有标题 A
。是否有生成正确 table 字幕的解决方案?
您可以使用 iwalk
来传递数据和列表名称。
library(tidyverse)
library(stargazer)
df %>%
split(. $group) %>%
iwalk(~stargazer(.x, type = "text", title = .y))
A
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 -0.064 0.890 -2.265 -0.744 0.734 1.699
var2 50 -0.130 1.003 -2.404 -0.752 0.581 1.930
-----------------------------------------------------------
B
==========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
----------------------------------------------------------
var1 50 0.086 0.823 -1.737 -0.476 0.742 1.736
var2 50 0.167 1.178 -1.709 -0.670 0.898 2.677
----------------------------------------------------------
您只需按如下方式更改现有代码即可完成此操作:
df %>% split(. $group) %>% walk(~ stargazer(., type = "text", title = .$group))
将 unique(df$group)
替换为 .$group
即可。不要忘记为 stargazer
添加库调用。原因是,通过使用 unique(df$group)
,您将长度为 2 的字符向量传递给 stargazer,根据定义,它只需要第一个参数。通过使用 .$group
取决于相应的组,您将获得正确的标题。
library(purrr)
library(dplyr)
library(stargazer)
df <- data.frame(var1 = rnorm(100),
var2 = rnorm(100),
group = rep(c("A","B"), each = 50))
df %>% split(. $group) %>% walk(~ stargazer(., type = "text", title = .$group))
A
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 -0.122 1.019 -3.582 -0.671 0.511 2.223
var2 50 0.082 1.077 -2.780 -0.702 0.841 2.203
-----------------------------------------------------------
B
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 0.023 0.971 -2.431 -0.706 0.609 2.299
var2 50 -0.041 1.039 -3.807 -0.626 0.718 1.950
-----------------------------------------------------------
我有一个数据集,其中包含一些要汇总的变量和一个组成员指标
df <- data.frame(var1 = rnorm(100),
var2 = rnorm(100),
group = rep(c("A","B"), each = 50))
我想分别为组 A
和 B
生成摘要 table。我们可以使用 dplyr
和 purrr
来做到这一点,如下所示:
library(purrr)
library(dplyr)
df %>% split(. $group) %>% walk(~ stargazer(., type = "text", title = unique(df$group)))
A
==========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
----------------------------------------------------------
var1 50 0.371 1.044 -2.350 -0.251 1.043 2.545
var2 50 0.014 0.849 -2.212 -0.407 0.584 1.710
----------------------------------------------------------
A
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 0.016 1.246 -2.432 -1.107 0.879 2.551
var2 50 -0.031 0.975 -2.713 -0.682 0.465 2.022
-----------------------------------------------------------
我天真地试图通过将 unique(df$group)
移交给 stargazer()
的 title
参数来将组名引入为 table 标题。当我们这样做时,只使用提供的 table 标题向量的第一个元素,因此所有 tables 都有标题 A
。是否有生成正确 table 字幕的解决方案?
您可以使用 iwalk
来传递数据和列表名称。
library(tidyverse)
library(stargazer)
df %>%
split(. $group) %>%
iwalk(~stargazer(.x, type = "text", title = .y))
A
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 -0.064 0.890 -2.265 -0.744 0.734 1.699
var2 50 -0.130 1.003 -2.404 -0.752 0.581 1.930
-----------------------------------------------------------
B
==========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
----------------------------------------------------------
var1 50 0.086 0.823 -1.737 -0.476 0.742 1.736
var2 50 0.167 1.178 -1.709 -0.670 0.898 2.677
----------------------------------------------------------
您只需按如下方式更改现有代码即可完成此操作:
df %>% split(. $group) %>% walk(~ stargazer(., type = "text", title = .$group))
将 unique(df$group)
替换为 .$group
即可。不要忘记为 stargazer
添加库调用。原因是,通过使用 unique(df$group)
,您将长度为 2 的字符向量传递给 stargazer,根据定义,它只需要第一个参数。通过使用 .$group
取决于相应的组,您将获得正确的标题。
library(purrr)
library(dplyr)
library(stargazer)
df <- data.frame(var1 = rnorm(100),
var2 = rnorm(100),
group = rep(c("A","B"), each = 50))
df %>% split(. $group) %>% walk(~ stargazer(., type = "text", title = .$group))
A
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 -0.122 1.019 -3.582 -0.671 0.511 2.223
var2 50 0.082 1.077 -2.780 -0.702 0.841 2.203
-----------------------------------------------------------
B
===========================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-----------------------------------------------------------
var1 50 0.023 0.971 -2.431 -0.706 0.609 2.299
var2 50 -0.041 1.039 -3.807 -0.626 0.718 1.950
-----------------------------------------------------------