我真的在这里挠头。我真的不明白发生了什么。这是一个 MWE,但实际代码和目的比这更复杂。所以代码:
library(dplyr)
ds <- mutate(iris, Species = as.numeric(Species == 'setosa'))
ds %>%
do_(
.dots = lazyeval::interp(
"broom::tidy(stats::glm(form, data = ., family = distr))",
form = Species ~ Sepal.Length,
distr = binomial()
)
)
返回:Error in family$linkfun(mustart) : object 'C_logit_link' not found
...但此代码位工作正常:
ds %>%
do_(
.dots = lazyeval::interp(
"broom::tidy(stats::glm(form, data = ., family = distr))",
form = Sepal.Width ~ Sepal.Length,
distr = gaussian()
)
)
两者之间的唯一区别是使用的家庭分布(高斯与二项式)和使用的变量。
所以问题是:为什么lazyeval 找不到C_logit_link
?