python3调用R的示例代码


Posted in Python onFebruary 23, 2018

由于工作需要,在做最优分箱的时候,始终写不出来高效的代码,所以就找到了R语言中的最优分箱的包,这个时候考虑到了在python中调用R语言,完美结合。在国内的中文网站搜了半天,搭建环境的时候一直出现” R_user not defined”这个错误,简直恼人,最后在Stack Overflow网站上找打了解决办法。

我的环境是: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:\>cd D:\Anaconda3\Anaconda3\Lib\site-packa

D:\Anaconda3\Anaconda3\Lib\site-packages>pip install rpy2-2.8.6-cp36-cp36m-win_amd64.whl

最后会显示successful,你就成功啦;

(四)配置环境测试R与的代码是否可以运行

打开你的python,然后按照你的情况,敲上这些代码,试一试。

In [1]: import os

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]: import rpy2.robjects as robjects

In [5]: robjects.r('''
  ...:     # create a function `f`
  ...:     f <- function(r, verbose=FALSE) {
  ...:       if (verbose) {
  ...:         cat("I am calling f().\n")
  ...:       }
  ...:       2 * pi * r
  ...:     }
  ...:     # call the function `f` with argument value 3
  ...:     f(3)
  ...:     ''')
Out[5]: 
R object with classes: ('numeric',) mapped to:
<FloatVector - Python:0x000000000B06FD88 / R:0x000000000EFE65B8>
[18.849556]

(五)调用R的包

我们一般使用python来调用R语言,一般要去用python里面某个没有的特殊包之类的。所以现在我来调用smbinning包。smbinning包是数据分箱的时候能实现最优分段的一个包。

In [6]: from rpy2.robjects.packages import importr
In [7]: smbinning = importr('smbinning')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
总结python爬虫抓站的实用技巧
Aug 09 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
Django 大文件下载实现过程解析
Aug 01 Python
Django和Flask框架优缺点对比
Oct 24 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
浅析python内置模块collections
Nov 15 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
python中kmeans聚类实现代码
Feb 23 #Python
python实现SOM算法
Feb 23 #Python
python实现k-means聚类算法
Feb 23 #Python
python写一个md5解密器示例
Feb 23 #Python
Python机器学习之K-Means聚类实现详解
Feb 22 #Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 #Python
python实现微信发送邮件关闭电脑功能
Feb 22 #Python
You might like
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
PHP实现图片压缩
2020/09/09 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
python简易远程控制单线程版
2018/06/20 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
有关爱国演讲稿
2014/05/07 职场文书
信访稳定工作汇报
2014/10/27 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
违纪开除通知书
2015/04/25 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
宣传稿格式范文
2015/07/23 职场文书