如何将预测函数应用于列表中的数据帧数量?
我有一个模型对象,我想将其应用于预测作为列表存储的新数据的数量(例如5)的值。所有数据长度相同,并包含相同的三个预测变量。最后,我希望将预测值存储为具有与我在预测中使用的数据集(例如5)一样多的列(或元素)的矩阵或列表。作为R编程的全新手,我还没有想出任何解决这个问题的办法。如何将预测函数应用于列表中的数据帧数量?
这是你的问题简单的例子: 首先,让我们产生了一些数据,让模型对象,例如,线性模型:
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)
非常感谢!这正是我所期待的。我自己无法正确制定lapply命令。 – putterinho 2014-10-11 19:56:11
np,我希望这会帮助熟悉应用函数。 – adomasb 2014-10-11 20:38:33
嗨,如果你可以看看我的问题,它会很好http://stackoverflow.com/questions/43427392/apply-predict-between-data-frames-within-two-lists谢谢 – aaaaa 2017-04-15 15:04:36
这听起来像一个标准的'sapply'问题。但是,如果你想获得特定的帮助和编码建议,请花时间创建一个[可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)所以我们知道你的对象是如何构造和命名的,所以我们确切知道涉及哪些函数/包。 – MrFlick 2014-10-11 17:59:53