2016-03-01 52 views
0

我正在學習R並存在以下問題。我跑了下面的代碼找到最好的多項式模型。從列表中表達多個對象/元素

set.seed(123) 
library(ISLR) 

##################################### 
# polynomial 
rss <- rep(NA, 15) 
fits <- list() 
for (i in 1:15) { 
    fits[[i]] <- lm(mpg ~ poly(displacement, i), data = Auto) 
    rss[i] <- deviance(fits[[i]]) 
} 
rss 

anova(fits[[1]], fits[[2]], fits[[3]], fits[[4]], fits[[5]], fits[[6]], fits[[7]], fits[[8]], fits[[9]], fits[[10]], fits[[11]], fits[[12]], fits[[13]], fits[[14]], fits[[15]]) 

該代碼有效。但是關於ANOVA()的最後一部分,如果配合包含大量元素,那麼它絕對看起來很乏味而且不實用。如何簡化它?

回答

2

通常,如果要將值列表轉換爲單獨的參數,請使用do.call。因此,對於您的示例,您可以運行

do.call("anova", fits) 
相關問題