python3调用R的示例代码
由于工作需要,在做最优分箱的时候,始终写不出来高效的代码,所以就找到了R语言中的最优分箱的包,这个时候考虑到了在python中调用R语言,完美结合。在国内的中文网站搜了半天,搭建环境的时候一直出现”R_usernotdefined”这个错误,简直恼人,最后在StackOverflow网站上找打了解决办法。
我的环境是:win7;
使用anaconda3;
(一)首先你要有个anaconda包;
这个就不多说了。
(二)你要有个R语言的软件
本人使用的微软开发的这个。当然你使用R官网的R语言软件,或者你使用RStudio问题都不大。
https://mran.revolutionanalytics.com/download
设置完成R与的环境变量
1.以后将R目录添加至path环境变量
path:D:\R\microsoft-r-open-3.4.2\bin\x64;
2.将R.dll添加至path环境变量
path:D:\R\microsoft-r-open-3.4.2\bin\x64\R.dll;
(三)根据小伙伴的经验下载rpy2
要去非官方的地方下载一个whl文件。
http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2
请认准python的版本和64位的下载,下载以后,安装rpy2.whl,把它放在D:\Anaconda3\Anaconda3\Lib\site-packages下面,反正就是你的anaconda的site-packages下面。
cmd中命令行,然后进入到刚刚那个路径,
C:\Users\Administrator>D:
D:\>cdD:\Anaconda3\Anaconda3\Lib\site-packa
D:\Anaconda3\Anaconda3\Lib\site-packages>pipinstallrpy2-2.8.6-cp36-cp36m-win_amd64.whl
最后会显示successful,你就成功啦;
(四)配置环境测试R与的代码是否可以运行
打开你的python,然后按照你的情况,敲上这些代码,试一试。
In[1]:importos
In[2]:os.environ['R_HOME']='D:\R\microsoft-r-open-3.4.2'
In[3]:os.environ['R_USER']='D:\Anaconda3\Anaconda3\Lib\site-packages\rpy2'
In[4]:importrpy2.robjectsasrobjects
In[5]:robjects.r('''
...:#createafunction`f`
...:f<-function(r,verbose=FALSE){
...:if(verbose){
...:cat("Iamcallingf().\n")
...:}
...:2*pi*r
...:}
...:#callthefunction`f`withargumentvalue3
...:f(3)
...:''')
Out[5]:
Robjectwithclasses:('numeric',)mappedto:
[18.849556]
(五)调用R的包
我们一般使用python来调用R语言,一般要去用python里面某个没有的特殊包之类的。所以现在我来调用smbinning包。smbinning包是数据分箱的时候能实现最优分段的一个包。
In[6]:fromrpy2.robjects.packagesimportimportr
In[7]:smbinning=importr('smbinning')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。