我正在測驗作為列存盤在單個資料框中的多個不同模型的模型擬合。我正在使用一個回圈來計算每個模型的模型擬合引數與實際測量值(也存盤在 df 中)的比較。模型擬合計算正確。我希望將結果附加到資料框中,以便資料框的每一行都包含模型擬合引數。我通過將其寫入串列,然后將串列轉換為回圈外的資料框來做到這一點。清單出來是空的。有什么建議么?
datalist <- list()
for(i in colnames(df)){
modelPerf <- data.frame(i,
RMSE = RMSE(as.numeric(df[[paste(i, sep = "")]]),Farad$`MarBASEFarad ActualActual`),
R2 = R2(as.numeric(df[[paste(i, sep = "")]]),Farad$`MarBASEFarad ActualActual`),
NSE = NSE(as.numeric(df[[paste(i, sep = "")]]),Farad$`MarBASEFarad ActualActual`),
pbias = pbias(as.numeric(df[[paste(i, sep = "")]]),Farad$`MarBASEFarad ActualActual`))
datalist[[modelPerf]]
}
finaldf <- do.call(rbind,datalist)
uj5u.com熱心網友回復:
您的問題的根源是您需要分配給 list。而且,你重復了很多代碼,這是低效且容易出錯的。
如果沒有測驗資料,這是未經測驗的,但我認為這應該更有效地作業并且更具可讀性:
datalist <- list()
target <- Farad$`MarBASEFarad ActualActual`
for(i in colnames(df)){
fitted <- as.numeric(df[[i]])
datalist[[i]] <- data.frame(
model = i,
RMSE = RMSE(fitted, target),
R2 = R2(fitted, target),
NSE = NSE(fitted, target),
pbias = pbias(fitted, target)
)
}
finaldf <- do.call(rbind, datalist)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512552.html
標籤:r数据框for循环附加
上一篇:遍歷嵌套物件并估算遺漏鍵
