【问题标题】:Tidy output table and stargazer整洁的输出表和观星器
【发布时间】:2021-05-19 09:31:11
【问题描述】:

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

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 不会将它们识别为回归输出。

stargazer(table, type = "text")

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

==================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
===================================================

有没有一种巧妙的方法可以让 Stargazer 识别出所有回归输出?

【问题讨论】:

    标签: r tidyverse stargazer


    【解决方案1】:

    尝试使用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")
    

    【讨论】:

    • 有趣的是,上面的代码给了我 12 个独立的 stargazer 输出。我试过这个,它可以工作stargazer(model_list, type="text")
    • 你介意看看这个吗? stackoverflow.com/questions/66228661/… 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2021-07-28
    • 2021-12-11
    • 2015-08-05
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多