迭代大型数据集 R-Studio 的每一行

Posted

技术标签:

【中文标题】迭代大型数据集 R-Studio 的每一行【英文标题】:Iterating over each Row of a large dataset R-Studio 【发布时间】:2020-10-09 23:59:59 【问题描述】:

假设我有一个包含给定邮政编码的 1500000 个州的列表,我想在该列表上运行我的预测模型(数据库)并获得区域的预测,我在一位绅士的帮助下做了同样的事情,这是我的代码:

pred <- sapply(1:nrow(first), function(row)  predict(basdata,first[row, ],estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma )
    基础数据:我的模型 第一:我正在预测该区域的新数据集。

现在,我面临的问题是代码需要很长时间才能预测值。它遍历每一行并计算面积。我的数据集中有 150000 行,我会请求是否有人可以帮助我优化此代码的性能。

【问题讨论】:

预测函数没有向量化吗?当你做predict(basdata,first[1:10,],estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma时会发生什么?它不是给你10个预测吗? 整个数据集有 3 个变量,我的模型 BASDATA 是基于从三个相应变量中获取一些值。我想如果我只是按照你的建议尝试预测,我会得到一些模糊的值,因为模型不会遍历整个数据集的每一行。 你能解释一下 first[1:10] 会帮助我实现什么吗? 我不明白你的意思。只需尝试上面的代码并尝试迭代前 10 行,即 sapply(1:10, function(row) predict(basdata,first[row, ],estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma ) 并查看值是否不同。 它的first[1:10,] 不是first[1:10] 注意10 后面的逗号 【参考方案1】:

我要感谢 onyambu 为我提供解决方案,因为我只是让预测功能更加复杂。以下代码可用于迭代数据集的每一行并使用构建的模型预测值。

predict(basdata,first,estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma

【讨论】:

以上是关于迭代大型数据集 R-Studio 的每一行的主要内容,如果未能解决你的问题,请参考以下文章

在 Java Spark 中迭代大型数据集的最快且有效的方法

如何在 R/Python 中迭代/循环一个大型(>2GB)JSON 数据集? [复制]

熊猫使用 loc 更改特定行的数据集值

C#,遍历数据集并显示数据集列中的每条记录

获取 R 中 rpart/ctree 包的每一行预测数据集的决策树规则/路径模式

从SQL服务器为数据集的每一行发送电子邮件。