首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django中Importr的预压

Django中Importr的预压
EN

Stack Overflow用户
提问于 2013-10-20 17:30:10
回答 1查看 82关注 0票数 0

是否有一种方法可以预加载rpy2与之对话的R实例的库?我花费了25%-30%的响应时间(大约每个图表的.5s )用于点阵或格栅设备的重要调用,如果可能的话,我想要减少。

代码片段:

代码语言:javascript
复制
grdevices = importr('grDevices')
importr('lattice')

imagefile = File(open('1d_%s.png' % str(uuid4()), 'w'))
grdevices.png(file=imagefile.name, type='cairo',width=400,height=350)

rcmd="""
print(
    xyplot(yvec~xvec,labels=labels,type=c('p','r'),
            ylab='%s',xlab='%s'
            )
)"""% (y_lab, x_lab)
robjects.r(rcmd)
grdevices.dev_off()

imagefile.close()

如果我不调用importr(“格”),robjects.r会在“xyplot(.我晚点再打电话。我可以使用R_PROFILE或R_ENVIRON_USER来加速点阵和格栅设备的调用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-20 22:48:58

importr是一个相当高水平的功能,交易性能为易用性.除了加载一个R包之外,它还做了很多事情。它还将包中的所有R对象映射到Python (rpy2)对象。在脚本中执行importr('lattice')时,如果不使用结果,就会失去这种努力。

除此之外,在R本身中导入包也不是没有代价的(对于具有S4类定义的更大的R包,当脚本很短时,您可能会注意到这一点)。rpy2对此无能为力。

使用R变量(如R_PROFILE )是可能的,但在最近之前,默认情况下没有启用这一点。如何在SO (这里)上启用它。

现在,importr只占用了响应时间的25%。专注于此的优化工作将无法使其速度超过25% (这是一个非常乐观的限制)。在此之后,将数据插入字符串以作为R代码进行计算并不是最优的(正如rpy2文档中警告的那样)。考虑通过rpy2调用R函数,将数据作为导出缓冲区接口的任何东西传递(例如)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19480524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档