2017-06-23 50 views
0

我將創建一個創建模型的循環。具有最高值的模式應該是使用後,帶保存對象的ifelse不起作用

d <- data.frame() 

for(i in 1:100){ 

    model <- lm(...) 

    d <- rbind(d,model_result) 

    # here the results should be saved 

    # if the model_result is higher than the highest before (in data frame "d") it 
    should be saved, so that i can use it later. 


    ifelse(model_result > max(d$V1), saveRDS(model,file = "mymodel.rds"), "") 
} 

model <- readRDS("mymodel.rds") 

節能工程,但不是唯一的最高值將是相當保存,然後每一個值,所以這是是救模型總是在循環最新不是最高的。

我還試過其他if-else功能但沒有人工作。

+1

'ifelse'設計用於載體。你可能想用'if'代替。 'if(model_result> max(d $ V1))saveRDS(model,file =「mymodel.rds」)'應該可以工作。另一方面,您也可以將最佳模型保存在內存中,並在循環結束後立即寫出最佳模型。像'if(model_result> max(d $ V1))best_model < - model'。 – lmo

+0

我試了兩個,並與if()r不會寫一個文件(保存文件),我真的不知道爲什麼。 *我已經檢查了工作路徑 –

回答

0

請使用if()超過ifelse()用於上述目的