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_HOME
或 R_USER
可能)
此外,如果您还没有看到它,请查看 QGIS 文档的这一页:17.31. Use R scripts in Processing。它提供了一种方便的方式来使用您现有的 R 脚本并稍作添加。
我一直在使用 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_HOME
或 R_USER
可能)
此外,如果您还没有看到它,请查看 QGIS 文档的这一页:17.31. Use R scripts in Processing。它提供了一种方便的方式来使用您现有的 R 脚本并稍作添加。