我将数据分组并为每个组拟合一个模型,我希望每个组都有残差。我可以使用RStudio的查看器查看每个模型的残差,但无法弄清楚如何提取它们。可以像diamond_mods[[3]][[1]][["residuals"]]
那样提取一组残差,但是如何使用purrr从每个组中提取残差(以及扫帚,最后得到一个漂亮的小标题)?
下面是我走了多远:
library(tidyverse)
library(purrr)
library(broom)
fit_mod <- function(df) {
lm(price ~ poly(carat, 2, raw = TRUE), data = df)
}
diamond_mods <- diamonds %>%
group_by(cut) %>%
nest() %>%
mutate(
model = map(data, fit_mod),
tidied = map(model, tidy)
#resid = map_dbl(model, "residuals") #this was my best try, it doesn't work
) %>%
unnest(tidied)
答案 0 :(得分:1)
您已经接近-但是您应该使用map()
而不是map_dbl()
,因为您需要返回列表而不是向量。
diamond_mods <- diamonds %>%
group_by(cut) %>%
nest() %>%
mutate(
model = map(data, fit_mod),
tidied = map(model, tidy),
resid = map(model, residuals)
)
答案 1 :(得分:1)
使用function* createRandomNumberStream(): IterableIterator<number> {
while (true) {
yield Math.random()
}
}
版的(it: Iterable<T>, n: number) => Iterable<T>
,我们可以在按“剪切”分组后在createRandomStream()
中完成
devel