2016-01-08 109 views
0

我試圖編寫for循環來創建各種隨機森林模型。我已經將列出的變量存儲在名爲列表的不同模型中:爲不同的隨機森林訓練算法創建循環

list <- c("EXPG1 + EXPG2", "EXPG1 + EXPG2 + distance") 

然後我嘗試循環創建預測。我最終想要達到的是這樣的:

modFit1 <- train(won ~ EXPG1 + EXPG2, data=training, method="rf", prox=TRUE) 
modFit2 <- train(won ~ EXPG1 + EXPG2 + distance, data=training, method="rf", prox=TRUE) 

但是我有一些問題試圖做到這一點。

這不起作用:

modFit1 <- train(won ~ list[1], data=training, method="rf", prox=TRUE) 

而這也似乎不列入做的伎倆:

for (R in modfits) { 

    modfit <- paste0("won ~ ", R, ", data=training, method=\"rf\", prox=\"TRUE") 
train(modfit) 

} 

在哪裏出了問題有什麼想法?

+1

也許這可以幫助'?as.formula'? –

+0

它似乎工作,但後來我不能打電話預測它...還有什麼建議嗎?我應該有一種方法來實現這一點 –

回答

0

創建一個空的列表存儲在第一

results <- vector('list',2) 
list <- c("EXPG1 + EXPG2", "EXPG1 + EXPG2 + distance") 

for (i in 1:2){ 
    results[i] <- train(won ~ list[i], data=training, method="rf", prox=TRUE) 
} 

模型那麼你應該能夠調用predictresults[[1]]