QGIS:如何在python控制台中直接运行R?

时间:2015-12-31 09:19:18

标签: python r qgis

我一直在使用QGIS python控制台来自动化我的需求。我使用了一些处理算法(例如距离矩阵)来处理输出csv文件的矢量图层。我需要使用R来处理这些文件,然后再将它们作为变量返回到我的python控制台。

有没有办法可以直接通过python控制台运行R(可能使用rpy2等软件包?)

1 个答案:

答案 0 :(得分:0)

我猜你可以使用rpy2轻松地与QGis python控制台中的R实例进行交互。 在QGIS python控制台中尝试以下以下代码行:

>>> import rpy2.rinterface as rinterface
>>> rinterface.set_initoptions((b'rpy2', b'--no-save'))
>>> rinterface.initr()
0
>>> from rpy2.robjects.packages import importr
>>> import rpy2.robjects as robjects

您现在可以像这样与R互动:

>>> robjects.r("""seq(1,12);""")
<IntVector - Python:0x7fa5f6e4abd8 / R:0x769f4a8>
[       1,        2,        3, ...,       10,       11,       12]

或者导入一些库,例如:

>>> rutils = importr("utils")
>>> rgraphics = importr('graphics')

看看documentation of Rpy2,我已成功使用这些方法运行一些个人脚本或从CRAN安装的一些库(在robjects.r("""...""")中运行多个语句并在python变量中获取输出在QGIS中使用。)

(如果我记得很清楚,在Windows上我必须首先设置一些环境变量,例如R_HOMER_USER

另外,如果您还没有看到它,请查看QGIS文档的此页面:17.31. Use R scripts in Processing。它提供了一种方便的方法来使用现有的R脚本并稍加添加。