在R包中添加对(Python)命令行程序的调用的最佳方法?

时间:2014-06-13 10:10:21

标签: r command-line package

我创建了一个R包,除其他外,使用以下代码调用python命令行程序:

py_loc = paste('C:/Python33/python.exe',system.file('exec', 'example.py', package='examplePackage'))
command <- paste(py_loc,"-e example")

它使用Python可执行文件example.pyexec包的example文件夹中运行程序C:/Python33/python.exe。因为我使用Windows,并且我想与其他Windows用户(但也是非Windows用户)共享它,我不能使用rPython来编写代码。 问题是python.exe将位于其他用户不同的位置。

我的想法是添加一个config文件,您可以在其中设置Python可执行文件的位置,或者将其作为函数的输入。有没有更好的方法在R包中添加对(Python)命令行程序的调用?

3 个答案:

答案 0 :(得分:1)

“rPython尚未在Windows上运行。” 然而,rPython的作者为Windows编写了一个版本: https://github.com/cjgb/rPython-win rPython和rPython-win都要求先安装Python,然后将R包“指向”它。 我最近了解到另一个'包装'包,PythonInR:https://bitbucket.org/Floooo/pythoninr/ 我没有尝试过,但文档看起来很重要。

答案 1 :(得分:0)

你可以做的是创建一个依赖于平台的包装函数,它接受python可执行文件的路径,python脚本和脚本的命令行参数。这应该创建正确的批处理/ shell命令字符串,并使用R中的system命令运行它。它将允许您捕获批处理/ shell进程的输出,并且您可以在R中进一步操作此输出。

答案 2 :(得分:0)

只要安装了Python和相关模块,请尝试rPython进行与平台无关的调用。

请参阅Examples