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

QGIS: How to run R directly in python console?

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

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

我想您可以使用 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 脚本并稍作添加。