首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >整齐的输出表和观星器

整齐的输出表和观星器
EN

Stack Overflow用户
提问于 2021-02-16 22:07:14
回答 1查看 131关注 0票数 2

我正在使用我发现的here这个奇妙的方法对子组(年份和组的所有组合)运行一系列回归。

代码语言:javascript
运行
复制
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()

这为我提供了一个表,其中包含年份和组的所有可能组合,作为单独的模型估计。我的问题是,我想使用stargazer将这些回归输出表示为单独的模型。但是stargazer不会将它们识别为回归输出。

代码语言:javascript
运行
复制
stargazer(table, type = "text")

我得到的不是通常的回归输出,而是:

代码语言:javascript
运行
复制
==================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
===================================================

有没有一种很好的方法,可以让Stargazer识别所有的回归输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 23:22:37

尝试使用dplyr中的tidy_split函数将基于组的数据帧拆分成一个数据帧列表。一旦拥有了该列表,就可以使用lapply将函数应用于列表中的每一项。如下所示,首先在列表中的每个数据帧上拟合一个lm,然后生成stargazer输出。

代码语言:javascript
运行
复制
# 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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66225934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档