2014-10-11 40 views
-5

我有一個模型對象,我想將其應用於預測作爲列表存儲的新數據的數量(例如5)的值。所有數據長度相同,幷包含相同的三個預測變量。最後,我希望將預測值存儲爲具有與我在預測中使用的數據集(例如5)一樣多的列(或元素)的矩陣或列表。作爲R編程的全新手,我還沒有想出任何解決這個問題的辦法。如何將預測函數應用於列表中的數據幀數量?

+5

這聽起來像一個標準的'sapply'問題。但是,如果你想獲得特定的幫助和編碼建議,請花時間創建一個[可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)所以我們知道你的對象是如何構造和命名的,所以我們確切知道涉及哪些函數/包。 – MrFlick 2014-10-11 17:59:53

回答

1

這是你的問題簡單的例子: 首先,讓我們產生了一些數據,讓模型對象,例如,線性模型:

training <- data.frame(y=rnorm(10), x1=rnorm(10), x2=rnorm(10)) 
model <- lm(y~., data=training) 

然後,在列表中我們生成數據的預測:

testing <- list() 
for (i in 1:5){ 
    testing[[i]] <- data.frame(x1=rnorm(10), x2=rnorm(10)) 
} 

最後,你申請的預測功能與lapply在列表中的每個新的數據,只是不公開預測列表中的矩陣:

predictions <- lapply(testing, function(x){predict(model, newdata=x)}) 
predictions_matrix <- matrix(unlist(predictions), nrow=5) 
+0

非常感謝!這正是我所期待的。我自己無法正確制定lapply命令。 – putterinho 2014-10-11 19:56:11

+0

np,我希望這會幫助熟悉應用函數。 – adomasb 2014-10-11 20:38:33

+0

嗨,如果你可以看看我的問題,它會很好http://stackoverflow.com/questions/43427392/apply-predict-between-data-frames-within-two-lists謝謝 – aaaaa 2017-04-15 15:04:36

相關問題