做 do.call anova 不使用额外的参数

问题描述

你好,我正在处理这些包

library(tidyverse)
library(ISLR)
library(boot)

我创建了一个包含各种多项式模型的列表,我想同时运行所有模型的方差分析。

df<- Wage
degrees <-  seq(1,5)
poly.fits <-  vector("list",length(degrees))
for (d in degrees){
  poly.fits[[d]]<- lm(wage ~ poly(age,d),data = df)
}

这有效

do.call("anova",poly.fits)

这也有效

anova(poly.fits[[1]],poly.fits[[2]],poly.fits[[3]],poly.fits[[4]],poly.fits[[5]],test = "F")

我想根据在此处找到的多个参数 https://statisticsglobe.com/do-call-and-call-functions-in-r/ 来执行此操作

do.call("anova",list(poly.fits,test = "F"))

但这不起作用并导致此错误

UseMethod("anova") 中的错误: 没有适用于“anova”的方法应用于“list”类的对象

有谁知道我如何才能使这项工作顺利进行?

解决方法

Onyambu 是对的

这有效

do.call("anova",c(Poly.fits,test = "F"))

这也有效

invoke("anova",Poly.fits,test = "F")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...