python3调用R的示例代码

作者:lingan_Hong 时间:2021-05-01 21:53:59 

由于工作需要,在做最优分箱的时候,始终写不出来高效的代码,所以就找到了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')

来源:http://blog.csdn.net/lingan_Hong/article/details/78902590

标签:python调用R
0
投稿

猜你喜欢

  • 详解Django将秒转换为xx天xx时xx分

    2023-06-14 22:52:12
  • Python实现的FTP通信客户端与服务器端功能示例

    2023-10-02 21:36:01
  • php实现的CSS更新类实例

    2023-11-21 22:28:30
  • 不能使用“;文件已在使用中 Microsoft JET Database Engine

    2012-12-04 20:34:36
  • SQL语句更改表所有者

    2010-02-04 09:12:00
  • python接口自动化使用requests库发送http请求

    2023-08-02 02:04:37
  • 关于 Python opencv 使用中的 ValueError: too many values to unpack

    2023-07-26 23:46:36
  • python性能检测工具函数运行内存及运行时间

    2021-11-24 00:09:27
  • 详解用python计算阶乘的几种方法

    2021-11-17 00:00:14
  • 如何修改MySQL 5.1 data文件夹路径

    2010-10-25 19:58:00
  • AJAX缓存问题的两种解决方法(IE)

    2008-05-02 20:57:00
  • Python响应对象text属性乱码解决方案

    2023-07-31 13:06:41
  • 解读等值线图的Python绘制方法

    2021-11-21 19:54:08
  • asp开发Wap中的随笔

    2008-05-21 12:56:00
  • python ansible自动化运维工具执行流程

    2021-08-07 01:54:25
  • Laravel实现登录跳转功能

    2023-06-14 23:35:40
  • Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    2021-12-14 16:37:30
  • python 字典(dict)遍历的四种方法性能测试报告

    2023-08-21 21:27:08
  • Python的matplotlib绘图如何修改背景颜色的实现

    2023-10-05 08:12:43
  • Django中自定义模型管理器(Manager)及方法

    2022-12-01 17:53:05
  • asp之家 网络编程 m.aspxhome.com