РЕДАКТИРОВАТЬ: На самом деле, глядя на метод показывает, что он использует только один метод, как я могу написать цикл, чтобы выбрать метод, заданный вектор методов?!
Я посмотрел на пару вопросов ( Цикл в R: как сохранить результаты? ), но, похоже, не могу понять, как сохранить выходные данные этих моделей. Вот моя «функция»:
library(caret)
Control<-trainControl(method="cv",number=5)
metric<-"Accuracy"
modeler<-function(df,yname,xname,method,metric,control){
df<-df
methods1<-method
f1<-as.formula(paste0(yname,"~",xname))
for(method in methods1){
fit<-do.call("train",list(data=quote(df),f1,metric=metric,trControl=control,
method=method))
}
fit
}
Реализация "функции":
methods1<-c("rf","rpart")
modeler(iris,yname="Species",xname=".",method = methods1,control=Control,
metric = metric)
Теперь я могу сохранить выше, как:
mod1<-modeler(iris,yname="Species",xname=".",method = methods1,control=Control,
metric = metric)
А потом:
sapply(mod1,"[",1)
Это работает, но возвращает только последнюю модель и не самые лучшие дисплеи.
Как я могу оптимизировать этот процесс?