【发布时间】:2020-03-13 02:05:19
【问题描述】:
here 提出了一个非常相似的问题,但我想为置信区间添加列。他们的例子有效:
x <- mtcars %>%
group_by(gear) %>%
do(model = lm(mpg ~ hp + wt, data = .))
x
Source: local data frame [3 x 2]
Groups: <by row>
# A tibble: 3 x 2
gear model
* <dbl> <list>
1 3 <S3: lm>
2 4 <S3: lm>
3 5 <S3: lm>
mtcars %>%
group_by(gear) %>%
nest %>%
inner_join(x) %>%
mutate(preds = map2(model, data, predict)) %>%
unnest(data, preds)
这有效,并为mtcars 生成了一个附加列,其中预测值由每个分组的单独模型生成。现在我想做的是包含来自predict()的置信区间列
mtcars %>%
group_by(gear) %>%
nest %>%
inner_join(x) %>%
mutate(preds = map2(model, data, predict, interval = "confidence")) %>%
unnest(data, preds)
这会返回错误:
Error in vec_rbind(!!!x, .ptype = ptype) : Internal error in `vec_assign()`: `value` should have been recycled to fit `x`.
错误在最后一行的unnest() 中触发。我认为这个问题与predict() 的输出格式有关,它是一个 3 列数据帧(fit、upr、lwr)。任何帮助将不胜感激!
【问题讨论】: