我需要用Python执行各种任务:灵敏度分析,优化和仿真启动。然而,模拟结果的第一个后处理依赖于R和存储在Rdata中的庞大数据库(8gb,其中一些数据表代表高达3gb)。所以我需要迭代R脚本的调用,而不迭代数据加载(这需要几分钟)。我首先尝试使用pyRserve,但我面临的内存限制似乎比原始r更严格。
:
import pyRserve
conn = pyRserve.connect()
conn.r.load('.Rdata')
我得到以下错误:
REvalError: Error: cannot allocate vector of size 640.3 Mb
:
1/是否有一种方法可以分配更多的内存到reserve(通常是在raw R中分配的数量,即我的配置为16 Gb)?
2/为了一劳永逸地加载Rdata,然后在同一工作空间内运行R脚本,是否有替代Rserve ?
下面的代码运行得很好。
memory_limit = getattr(conn.r, 'memory.limit')
memory_limit(16287.0)