我正在尝试让modelr::add_residuals
对嵌套在列表列中的数据帧起作用。当我尝试unnest()
时,我收到“错误信息bind_rows”消息。
输入模型是具有矩阵响应的生物模型,这似乎是问题的一部分。
这是一个例子:
library(tidyverse)
library(modelr)
library(doBy)
data(budworm)
fitter <- function(df, ...){
# fit binomial glm to matrix response
res <- glm(cbind(ndead, ntotal) ~ log(dose), data = df, family = binomial)
return(res)
}
# create nested data frames
bg <- budworm %>%
group_by(sex) %>%
nest()
bg %>%
mutate(fits = map(data, fitter),
res = map2(data, fits, add_residuals)) %>%
unnest(res)
unnest()
中的错误是:
bind_rows_(x,.id)中的错误:参数4的长度必须为6,而不是12
我注意到add_predictions()
没有这个问题。
我想知道问题是否与使用矩阵作为glm的响应有关(如在蠕虫示例中的化验类型应用中很常见)。我发现的唯一类似的问题是扫帚包装here。但是,这似乎也与unnest
有关,因为add_residuals()
在未存储在列表列中的数据帧上可以正常工作。