迭代大型数据集 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 数据集? [复制]