整齐的输出 table 和 stargazer
Tidy output table and stargazer
我正在 运行 使用我发现的这种神奇方法对子组(年份和组的所有组合)进行一系列回归 。
year <- rep(2014:2015, length.out = 10000)
group <- sample(c(0,1,2,3,4,5,6), replace=TRUE, size=10000)
value <- sample(10000, replace = T)
female <- sample(c(0,1), replace=TRUE, size=10000)
smoker <- sample(c(0,1), replace=TRUE, size=10000)
dta <- data.frame(year = year, group = group, value = value, female=female, smoker = smoker)
library(dplyr)
library(broom)
library(stargazer)
table <- dta %>%
group_by(year, group) %>%
do(tidy(lm(smoker ~ female, data = .))) %>%
ungroup()
这给了我一个 table 所有可能的年份和组组合作为单独的模型估计。我的问题是我想使用 stargazer 将这些回归输出呈现为单独的模型。但是 stargazer 不认为它们是回归输出。
stargazer(table, type = "text")
我得到的不是通常的回归输出:
==================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
===================================================
有没有一种巧妙的方法可以让 Stargazer 识别所有回归输出?
尝试使用 dplyr
中的 tidy_split
函数将基于组的数据帧拆分为数据帧列表。获得该列表后,您可以使用 lapply
将函数应用于列表中的每个项目。如下所示,首先在列表中的每个数据帧上拟合 lm
,然后生成 stargazer
输出。
# create list of dfs
table_list <- dta %>%
group_by(year, group) %>%
group_split()
# apply the model to each df and produce stargazer result
model_list <- lapply(table_list, function(x) lm(smoker ~ female, data = x))
stargaze_list <- lapply(model_list, stargazer, type = "text")
我正在 运行 使用我发现的这种神奇方法对子组(年份和组的所有组合)进行一系列回归
year <- rep(2014:2015, length.out = 10000)
group <- sample(c(0,1,2,3,4,5,6), replace=TRUE, size=10000)
value <- sample(10000, replace = T)
female <- sample(c(0,1), replace=TRUE, size=10000)
smoker <- sample(c(0,1), replace=TRUE, size=10000)
dta <- data.frame(year = year, group = group, value = value, female=female, smoker = smoker)
library(dplyr)
library(broom)
library(stargazer)
table <- dta %>%
group_by(year, group) %>%
do(tidy(lm(smoker ~ female, data = .))) %>%
ungroup()
这给了我一个 table 所有可能的年份和组组合作为单独的模型估计。我的问题是我想使用 stargazer 将这些回归输出呈现为单独的模型。但是 stargazer 不认为它们是回归输出。
stargazer(table, type = "text")
我得到的不是通常的回归输出:
==================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
===================================================
有没有一种巧妙的方法可以让 Stargazer 识别所有回归输出?
尝试使用 dplyr
中的 tidy_split
函数将基于组的数据帧拆分为数据帧列表。获得该列表后,您可以使用 lapply
将函数应用于列表中的每个项目。如下所示,首先在列表中的每个数据帧上拟合 lm
,然后生成 stargazer
输出。
# create list of dfs
table_list <- dta %>%
group_by(year, group) %>%
group_split()
# apply the model to each df and produce stargazer result
model_list <- lapply(table_list, function(x) lm(smoker ~ female, data = x))
stargaze_list <- lapply(model_list, stargazer, type = "text")