我有一个包含大约 800 万个观测值和 5 个字符变量的数据集“X” - 称它们为 A、B、C、D 和 E。我正在尝试使用 RecordLinkage
包计算 D 和 E 之间的 jaro-winkler 统计数据:
library(RecordLinkage)
X$jw = jarowinkler(X$D, X$E)
问题是,越来越多的内存不断被耗尽,直到计算机完全死机。有没有什么方法可以自动以“ block ”的形式进行处理,而无需实际手动将 X 预先分割成相当小的尺寸并处理各个子集?
换句话说,是否有任何内置函数可以进行分割和处理,而无需我预先进行?
最佳答案
好吧,最简单的解决方案可能是使用 read.table
(或 CSV 或其他)的 nrows
参数。将 nrows 设置为一个较小的值,然后循环遍历各个段,删除不需要的对象并随时调用 gc()
。
关于r - 分块处理数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459989/