2016-10-03 36 views
0

我想創建一個將用於適合我的數據的模型列表。使用R適配for循環中的許多模型

下面的代碼

models = list("naiveBayes","rf") 

for(model_name in models){ 
    print(model_name) 
    formual = V35 ~ . 
    model = model_name(formual,data=train) 
} 

的錯誤,我得到 Error: could not find function "model_name"

+0

因爲'model_name'是一個字符串,而不是一個功能,是什麼讓你認爲這會起作用?另外,你看過'caret'包嗎?它是量身定製的,以幫助做這樣的事情。另外,由於''stats :: rf()''''rf'不明確,''care''包中的'rf'命名簡寫。同樣,由於你沒有列出清單,'model'只會持有最後一個模型。 – hrbrmstr

+0

@hrbrmstr是的。我只是想舉一個例子,'caret package'沒有我正在尋找的模型。 –

回答

1

做出變量,函數:

models = c("naiveBayes","rf") 

for(model_name in models){ 
    print(model_name) 
    formual = V35 ~ . 
    m <- match.fun(model_name) 
    m(formual,data=train) 
}