Это не работает, потому что rf
еще не существует, и вы не можете установить его подмножество.
1. Используйте список в качестве контейнера
Должно работать следующее:
# define the length of your random forest trials
N = 3
rf = vector( "list", N)
for (i in seq_len( N ) {
rf[[ i ]] <- train( Y ~. , data = trainingData, method = "rf",
ntree = 100,
tuneGrid=data.frame(mtry = mtry),
trControl = controle,
metric='ROC')
}
Приведенный выше код хранит список rf
, который содержит три элемента в соответствии с N
. Вы можете получить доступ к каждому объекту с помощью rf[[ 1 ]]
, rf[[ 2 ]]
, rf[[ 3 ]]
.
2. Храните объекты независимо друг от друга
Если вы хотите физически хранить независимые rf
объекты в вашей глобальной среде, вы должны использовать assign()
следующим образом:
# define the length of your random forest trials
N = 3
for (i in seq_len( N ) {
assign( paste0( "rf", i) ,
train( Y ~. ,
data = trainingData, method = "rf",
ntree = 100,
tuneGrid=data.frame(mtry = mtry),
trControl = controle,
metric='ROC')
}
Это сохраняет три объекта rf1
, rf2
и rf3
в вашей среде, и вы можете работать с ними независимо.