【问题标题】:How to apply predict function to number of data frames in a list?如何将预测函数应用于列表中的数据帧数?
【发布时间】:2014-12-06 16:40:05
【问题描述】:

我有一个模型对象,我想用它来预测存储为列表的新数据的数量(例如 5)的值。所有数据都具有相同的长度并包含相同的三个预测变量。最后,我希望将预测值存储为矩阵或列表,该矩阵或列表具有与预测中使用的数据集一样多的列(或元素)(例如 5)。

作为 R 编程的新手,我还没有找到任何可行的解决方案来解决这个问题。

【问题讨论】:

  • 这听起来像是一个标准的sapply 问题。但是,如果您需要具体的帮助和编码建议,请花时间创建reproducible example,以便我们了解您的对象的结构和命名方式,以便我们确切了解所涉及的函数/包。

标签: r apply prediction lapply predict


【解决方案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)

【讨论】:

  • 非常感谢!这正是我一直在寻找的。我自己无法正确制定 lapply 命令。
  • np,我希望这有助于熟悉应用函数。
  • 嗨,如果你能看看我的问题,那就太好了stackoverflow.com/questions/43427392/… 谢谢
猜你喜欢
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2021-09-18
  • 2017-03-09
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多