用tidyverse中的列表列数据结构拟合随数据帧的行而变化的不同模型公式的最佳方法是什么?
在R for Data Science中,Hadley给出了一个很棒的示例,说明了如何使用列表列数据结构和轻松地拟合许多模型(http://r4ds.had.co.nz/many-models.html#gapminder)。我正在尝试找到一种方法来适合具有稍微不同的公式的许多模型。在下面的示例中(改编自他的原始示例),为每个洲拟合不同模型的最佳方法是什么?
library(gapminder)
library(dplyr)
library(tidyr)
library(purrr)
library(broom)
by_continent <- gapminder %>%
group_by(continent) %>%
nest()
by_continent <- by_continent %>%
mutate(model = map(data, ~lm(lifeExp ~ year, data = .)))
by_continent %>%
mutate(glance=map(model, glance)) %>%
unnest(glance, .drop=T)
## A tibble: 5 × 12
# continent r.squared adj.r.squared sigma statistic p.value df
# <fctr> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
#1 Asia 0.4356350 0.4342026 8.9244419 304.1298 6.922751e-51 2
#2 Europe 0.4984659 0.4970649 3.8530964 355.8099 1.344184e-55 2
#3 Africa 0.2987543 …
Run Code Online (Sandbox Code Playgroud)