如何解决dplyr mutate 函数中的“无效公式”,用于跨具有多个模型的数据框的 rowwise() 线性回归这个错误来自哪里?
我在 Towards Data Science 上看到了一篇关于使用 dplyr 和 broom 包中的函数以及由模型公式组成的数据框运行多元线性回归的很酷的技术的文章。我首先用我自己的数据尝试了这个但无济于事,所以我直接从帖子中复制了这个例子并收到了同样的错误!您可以在此处查看帖子:https://towardsdatascience.com/five-things-you-never-knew-you-could-do-with-dplyr-1b634c0ea745
这是使用汽车包 mtcars 数据集的帖子中的代码。
# create a column with model formulas to test
models <- data.frame(
formula = c(
"mpg ~ cyl","mpg ~ cyl + disp","mpg ~ cyl + disp + hp","mpg ~ cyl + disp + hp + drat"
)
)
# run them all and get fit statistics
models %>%
dplyr::rowwise() %>%
dplyr::mutate(
broom::glance(lm(formula,mtcars))
)
我收到的错误是:
Error: Problem with `mutate()` input `..1`.
x invalid formula
ℹ Input `..1` is `broom::glance(lm(formula,mtcars))`.
ℹ The error occured in row 1.
Run `rlang::last_error()` to see where the error occurred.
> rlang::last_error()
<error/dplyr_error>
Problem with `mutate()` input `..1`.
x invalid formula
ℹ Input `..1` is `broom::glance(lm(formula,mtcars))`.
ℹ The error occured in row 1.
Backtrace:
1. dplyr::rowwise(.)
9. dplyr::mutate(.,broom::glance(lm(formula,mtcars)))
11. dplyr:::mutate_cols(.data,...)
我可以在数据框中看到模型就好了。我也可以对数据进行 rowwise() 视图。我尝试重新启动我的 R 会话并仅加载 dplyr、broom 和汽车包,以查看是否存在任何屏蔽问题(这不应该存在,因为我直接调用了这些函数......)。
我尝试使用 mutate_at(),因为我知道在 tidyverse 中通过函数发送字符串有时会出现问题,我收到了这个错误:
> # run them all and get fit statistics
> models %>%
+ dplyr::rowwise() %>%
+ dplyr::mutate_at(
+ broom::glance(lm(formula,mtcars))
+ )
Error: object of type 'closure' is not subsettable
唯一的问题是 mutate,但它似乎工作得很好,因为它在这里为文章作者编码。 任何关于正在发生的事情的想法将不胜感激!
编辑: RStudio 1.4 版 软件包版本:dplyr - 1.0.5,tidyverse - 1.3.0,broom - 0.7.5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。