为向量的所有元素调用函数

时间:2015-06-01 16:02:09

标签: r foreach rweka

您好我正在尝试使用一些单独的模型和一些单独的种子执行线性回归。

目前我有以下哪些有效,但似乎不像

library(RWeka)
library(datasets)
library(foreach)

m0 <- LinearRegression(mpg~.,data=mtcars,control=Weka_control(S=0))
m1 <- LinearRegression(mpg~.,data=mtcars,control=Weka_control(S=1))
m2 <- LinearRegression(mpg~.,data=mtcars,control=Weka_control(S=2))

models <- list(m0,m1,m2)

seeds <- c(1:10)

foreach(m = models) %:%
  foreach(x = c(1:10)) %do%
    evaluate_Weka_classifier(m,numFolds = 10,seed = seed)

还有更多的R喜欢这样做的方法,如果没有,有没有人知道如何通过循环不同的模型来完成我想要做的事情?

R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

编辑:我认为这会迭代模型部分并相应地更新帖子。这还有一个问题是,有一个更好的方法来做到这一点,而不是foreach(看起来不是很像)

1 个答案:

答案 0 :(得分:0)

我不熟悉evaluate_Weka_classifier的详细信息,但通常看起来你可以这样做,这会返回一个列表列表。不一定比foreach好,但可能更多&#34; R-ish&#34;因为它使用基本功能(对于任何值得的)

lapply(models, function(m) {
  lapply(1:10, function(seed) {
    evaluate_Weka_classifier(m, numFolds = 10, seed = seed)
  })
})