问题描述
我正在尝试基于数据集中的特定组构建模型,并使用生成的模型通过遵循组限制来预测对不同数据集的拟合。换句话说,使用下面的示例,使用原始数据的子集:cyl==4 构建的模型应该仅用于预测新数据集(数据1)的子集:cyl==4。任何人都可以帮助解决这个有趣的问题?
我尝试使用 data1%>% group_by(cyl)
来指定新数据,但这没有帮助
谢谢
library(broom)
library(dplyr)
library(purrr)
data1 <- head(mtcars,20)
x<-mtcars %>%
group_by(cyl) %>%
summarise(fit = list(lm(wt ~ mpg)),data = list(cur_data())) %>%
mutate(col = map(fit,augment,newdata = data1%>% group_by(cyl)))```
解决方法
这是一个快速的方法
library(dplyr)
models = mtcars %>% group_by(cyl) %>% do(model = lm(wt ~ mpg,data = .))
然后使用
访问各个模型library(broom)
tidy(models$model[[1]])
另一种方法 -
models <- mtcars %>%
nest_by(cyl) %>%
mutate(mod = list(lm(mpg ~ disp,data = data)))