在 R 中使用 map() 到 "spread_predictions" 时继续识别特征?

Keep identifying features when using map() to "spread_predictions" in R?

我正在尝试建立一个线性模型,然后根据该线性模型对新数据进行预测。下面的代码块采用一组给定的数据 (data1),并基于以下事实生成 20 个模型:当我按 ID 分组并绘图时,有 20 个组:

modelobject <- data_1 %>% 
  group_by(ID, plot) %>% 
  do(model = lm(air_temp ~ water_temp, data = .)) %>% 
  ungroup()

现在模型已经设计好了,我想使用 map() 函数对每个模型的一组新数据 (data_2) 进行预测:

modelled_values <- map(modelobject$model, ~ spread_predictions(data = data_2, models = .x))

这很好用,除了后续对象 modelled_values 没有原始模型的识别特征(即它们给定的 ID 和绘图),如以下输出所示值列(它产生 11 列,其中 none 是识别特征):

Value
List of length 20
A data.frame with 52606 rows and 11 columns
....

我最终不得不假设它们只是按照我生成它们的顺序,并使用以下代码样式手动标记每个模型对象:

modelled_values[[1]]$ID <- "ID1"
modelled_values[[2]]$ID <- "ID1"
modelled_values[[3]]$ID <- "ID2"
modelled_values[[4]]$ID <- "ID2"
...

有什么方法可以将原始模型的识别特征转移到这些预测数据中吗?

像这样的事情怎么样:

modelobject <- mtcars %>% 
  group_by(vs, am) %>% 
  do(model = lm(mpg ~ hp, data = .)) 
preds <- modelobject %>% 
  group_by(vs, am) %>% 
  rowwise %>% 
  summarise(preds = list(predict(model, newdata=mtcars)))

preds
# # A tibble: 4 x 3
# # Groups:   vs, am [4]
#     vs    am preds     
# <dbl> <dbl> <list>    
# 1     0     0 <dbl [32]>
# 2     0     1 <dbl [32]>
# 3     1     0 <dbl [32]>
# 4     1     1 <dbl [32]>

在上面的代码中,preds 现在是一个带有名为 preds 列的小标题,其中每个元素都是相关 vs 和 [= 模型的预测向量14=] 行中的值。