您的位置:首页 > 编程语言 > Python开发

Python3如何调用R语言脚本

2019-04-08 20:51 721 查看

在不利用rpy2的情况下,对R脚本进行调用

Python3通过命令行调用R脚本

众所周知,python3 + R,天下我有。
python3语言灵活,容易上手,
写爬虫,做机器学习,做数据模型都非常容易。
但是在处理矩阵数据以及作图上,R语言可能略胜一筹。

网上有很多关于python调用R的教程,其中rpy2模块最为有效,但是rpy2的操作是直接将R语言代码添加进python程序,其实不利于程序维护。并且rpy2的安装也略微有些复杂,windows和linux系统下不能保证每次都顺利安装rpy2。

所以在这里介绍通过python内置函数os对R脚本进行调用:
代码如下:
Python3代码如下

import os
os.system('Rscript demo.R' + ' ' + parameter1 + ' ' + parameter2 + ' ' + parameter3)

R代码如下

args=commandArgs(T)
parameter1 = args[1]
parameter2 = args[2]
parameter3 = args[3]

cat("parameter1 is",parameter1,'\n',sep = " ")
cat("parameter2 is",parameter2,'\n',sep = " ")
cat("parameter3 is",parameter3,sep = " ")

该程序运行效果等同于在命令行输入以下代码:

Rscript demo.R parameter1 parameter2 parameter3

我们将
parameter1 改成:人生苦短
parameter2 改成:我用python
parameter3 改成:以及R

python里代码变为:

import os
os.system('Rscript demo.R 人生苦短 我用python 以及R')

命令行运行效果:

python p2r.py


Rscript demo.R 人生苦短 我用python 以及R


效果完全一致,就是没识别中文。
换成数字试一下:
Rscript demo.R 1 2 3


可以了,今天就这样吧,这个方法能用的前提是:
python和R都顺利装好了,并且能顺利在命令行运行!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: