我想运行一些简单的程序从HTML代码中提取表。但是,XML包中的readHTMLTable似乎存在一些内存问题。有什么方法可以轻松解决这个问题吗?就像以某种方式为该命令指定一些特殊内存然后手动释放它。解决R内存泄漏与XML包
我试图把它放在一个函数中,并尝试使用gc()和不同版本的R和这个包,似乎没有任何工作。我开始变得绝望。
示例代码。如何运行而不爆炸内存大小?
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
while(TRUE) {
b = readHTMLTable(a)
#do something with b
}
编辑: 像这样的事情还是需要我所有的记忆:
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
f <- function(x) {
b = readHTMLTable(x)
rm(x)
gc()
return(b)
}
for(i in 1:100) {
d = f(a)
rm(d)
gc()
}
rm(list=ls())
gc()
我使用的win 7,并与32位和64位的尝试。
我在Windows上使用'XML'包时遇到了严重的内存问题。我的解决方案是定期重新启动R(将数据保存为CSV)。我通过电子邮件发送了软件包作者。我们交换了一些电子邮件,但他基本上说他不能/不会调试Windows。 – rrs
好的。重新启动R的作品,但它不是很好的手动工作,每5分钟做一次。我想唯一的办法就是切换到Linux。 XML是非常酷的软件包,但由于这些内存问题而令人遗憾地被破坏。 – Pekka