在 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=] 行中的值。
我正在尝试建立一个线性模型,然后根据该线性模型对新数据进行预测。下面的代码块采用一组给定的数据 (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=] 行中的值。