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之禅》中对于Python编程过程中的一些建议
Apr 03 Python
Python发送email的3种方法
Apr 28 Python
Python selenium文件上传方法汇总
Nov 19 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
django-csrf使用和禁用方式
Mar 13 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
在Python中定义一个常量的方法
2018/11/10 Python
Python 项目转化为so文件实例
2019/12/23 Python
python属于解释型语言么
2020/06/15 Python
python中pyplot基础图标函数整理
2020/11/10 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
活动总结报告格式
2014/05/09 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
安全生产标语口号
2015/12/26 职场文书
企业团队精神心得体会
2016/01/19 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android