rpy2库

2023-11-04

在数据分析中,Python和R各有千秋,虽然Python或R都能在数据分析打通关,从采集、清洗(预处理)、分析、可视化,但是在不同的环节,不同的语言易用程度不同。Python胜在干脏活累活,诸如数据采集、数据清洗、机器学习等;而R语言胜在统计分析、可视化等。所以,如果你正好Python和R都入门了,可以考虑两者结合。那么就会遇到今天的问题-如何在jupyter中使用R语言代码?

rpy2包

rpy2包首先是Python包,ta衔接了Python和R,通过rpy2可以运行R语言相关代码、函数、包。

在Jupyter notebook中主要有两种情况

  1. 单元格中以Python为主,可以插入R的代码字符串

  2. 单个的单元格要么只有R代码,要么只有Python代码

遇到这类问题,各位的电脑要确保

  1. 电脑已经安装了Python和R

  2. 已安装rpy2包

安装rpy2包pip3 install rpy2

import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri

#R代码运行会尽量以DataFrame显示
pandas2ri.activate()

#运行R代码
robjects.r('R代码字符串')

运行R代码

rpy2.robjects.r('R代码字符串')

rpy2.robjects.r()函数会识别 R代码字符串, 并将其执行。

import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri


#直接声明,data frame强制转为DataFrame
pandas2ri.activate()

#R代码
r_code = """
library(dplyr)

text <- c("Because I could not stop for Death -",
          "He kindly stopped for me -",
          "The Carriage held but just Ourselves -",
          "and Immortality")
          
text_df <- tibble(docid=1:4, text=text)
text_df
"""

#运行R代码
robjects.r(r_code)

  1. 准备一个R代码r_code,该代码会生成R语言的tibble数据类型(R语言中的一种data frame)。

  2. robjects.r(r_code) 运行R代码(字符串)

  3. 在本例中,使用pandas2ri.activate()强制声明,在Python中将变量text_df以pandas.DataFrame显示

调用R数据集

rpy2.robjects.r.data('R的数据集名')

调用R的数据集

import rpy2.robjects as robjects
  • robjects.r.data('R数据集名') 准备R数据集,此时Python并没有显示该数据集,可以理解为准备数据

  • robjects.r['R数据集名'] 导入R的数据集

import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri

pandas2ri.activate()

#准备iris
robjects.r.data('iris')
#导入iris
iris = robjects.r['iris']
iris

调用R语言包

rpy2.robjects.packages.importr('R包名')

R语言中的readr包有read_csv()函数,可以读取csv文件。

from rpy2.robjects.packages import importr
from rpy2.robjects import pandas2ri

pandas2ri.activate()

#导入R语言中的readr包
readr = importr("readr")
#使用readr包中的read_csv()函数
mtcars = readr.read_csv("mtcars.csv")
mtcars.head()

Cell只运行R代码

上面的几个章节中,每个cell中代码均为Python和R的混用,如果在Cell中只运行R代码,

  1. 可以先单独在一个cell中运行 %load_ext rpy2.ipython,

  2. 在另外一个cell中使用%%R声明本cell中使用的是R代码。

%load_ext rpy2.ipython
%%R

library(ggplot2)

ggplot(iris, aes(x=Sepal.Length, 
                 y=Sepal.Width, 
                 color=Species))+
geom_point()

%%R -h 550 -w 800  #设置宽、高

library(ggplot2)

ggplot(iris, aes(x=Sepal.Length, 
                 y=Sepal.Width, 
                 color=Species))+
geom_point()

近期文章

[更新] Python网络爬虫与文本数据分析 
七夕礼物 | 全网最火的钉子绕线图制作教程

读完本文你就了解什么是文本分析

文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用

plotnine: Python版的ggplot2作图库
小案例: Pandas的apply方法  
stylecloud:简洁易用的词云库 
用Python绘制近20年地方财政收入变迁史视频  
Wow~70G上市公司定期报告数据集

漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  
后台回复关键词【20200818】获取本文代码和数据
  • 分享”和“在看”是更好的支持!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rpy2库 的相关文章

随机推荐

  • moviepy快速切分视频并保存片段

    文章目录 1 直接使用ffmepg 2 使用moviepy本身 moviepy安装最新版本 pip install moviepy pre upgrade 版本是v2 0 0 dev2 有两种方法一种快速的 1 直接使用ffmepg fro
  • 基于STM32的DMX512开发笔记

    首先基本了解一下DMX512的基本协议 一 DMX512协议 DMX 是Digital MultipleX 的缩写 意为多路数字传输 DMX512控制协议是美国舞台灯光协会 usITT 于1990年发布的灯光控制器与灯具设备进行数据传输的工
  • 使用小波变换对图像进行去噪

    使用小波变换对图像进行去噪 实现效果 代码 import matplotlib pyplot as plt from skimage restoration import denoise wavelet estimate sigma fro
  • GAN_Unet模型实现

    文章目录 摘要 一 GAN 1 1 输入 输出 1 2 优化目标 1 3 缺点 1 4 CGAN 1 5 LSGAN 1 6 C LSGAN实现 1 7 判别器 总代码 二 Unet 2 1 编码器 2 2 编码器 2 3 效果 2 4 模
  • 深度学习(自编码器)

    深度学习目录 自适应线性单元 Widrow and Hoff 1960 神经认知机 Fukushima 1980 GPU 加速 卷积网络 Chellapilla et al 2006 深度玻尔兹曼机 Salakhutdinov and Hi
  • MVC笔记 初识模型(二)

    1 在视图中创建窗口 新建一个View视图 添加视图 选中复选框 创建强类型视图 需要输入的地方可以用MVC内置的HTML辅助方法来生成字段 需要显示标题的地方可以用 方法 需要显示文本的地方可以使用 方法 在MVC中 可以利用Html B
  • FPGA/IC 秋招笔试/面试题总结(续)

    请根据目录浏览 觉得有用三连支持一下也是一种鼓励 打印版半价半价 联系微信 Crazzy M 原创不易 100页 未经允许 请勿转载 FPGA IC 秋招笔试 面试题总结 目录展示 点击查看 内容展示 FPGA IC 秋招笔试 面试题总结
  • webpack-使用html-webpack-plugin和ejs-loader将侧栏、头部、底部公共html做成模板,并生成合并后的html页面...

    在学习前端自动化之前一直使用 PHP JSP 将在每个页面将头部 侧栏 底部等部分引入 现在前端 娱乐圈 一直噼里啪啦的每天出新东西 自从接触了前端自动化我就觉得这种工作可以交给前端了但一直没时间研究一下 最近有时间看一下 踩了好多坑终于成
  • 10:00面试,10:06就出来了,问题问的实在有点变态

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到8月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降30 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • SVN经典目录结构说明

    SVN经典目录结构说明 SVN的经典目录包含trunk tags branches trunk trunk是主干 也就是主要工作的地方 也是最新的代码存放的地方 branches branches是分支的意思 分支开发和主线开发是可以同时进
  • MySQL数据库和表基础操作

    目录 一 数据库的基本操作 二 表的基本操作 1 表结构操作 2 表数据操作 CRUD增删查改 一 数据库的基本操作 创建数据库 create database 数据库名 切换数据库 use 数据库名 删除数据库 drop database
  • 服务器conda环境打包迁移 dgl安装 版本问题

    总结 租服务器配好conda环境 把环境迁移到没联网的学校服务器 要注意一定要检查两个服务器的CUDA版本是不是不同的 这可能会带来一些问题 因为CUDA是不在conda环境里面的 最后解决安装dgl版本问题还是采用下载whl文件pip离线
  • ICCV 2023

    本文转载自知乎 mywt 已获得作者授权 文章链接 https arxiv org abs 2211 14710 代码链接 3DPPE on petrv1 v2 https github com drilistbox 3DPPE 3DPPE
  • win10环境Vscode快速配置编译运行C文件

    一 安装并正常运行vscode 下载vscode插件 安装C C 插件和code run插件 二 下载MinGW w64 1 下载地址 https sourceforge net projects mingw w64 2 根据电脑配置选择合
  • SetupDiGetDeviceInterfaceDetail

    SetupDiGetDeviceInterfaceDetail 该函数返回设备接口的详细信息 BOOL SetupDiGetDeviceInterfaceDetail In HDEVINFO DeviceInfoSet In PSP DEV
  • STM32定时器系列 - STM32常规定时器时基与时钟源

    常规定时器包括 基本定时器 通用定时器和高级定时器 基本定时器 没有任何对外输入 输出 主要用作时基计数 定时 通用定时器 除了基本定时器的时基功能外 还可对外做输入捕捉 输出比较以及连接其它传感器接口 编码器和霍尔传感器 高级定时器 此类
  • C语言深入理解指针(非常详细)(一)

    目录 内存和地址 内存 编址的理解 指针变量和地址 取地址操作符 指针变量和解引用操作符 指针变量 如何拆解指针类型 解引用操作符 指针变量的大小 指针变量类型的意义 指针的解引用 指针 整数 const修饰指针 const修饰变量 con
  • 【Mybatis】Mybatis插入中文乱码问题

    1 首先看数据库中和idea中是否都是utf 8编码 1 数据库 新建查询 gt 输入 SHOW FULL COLUMNS FROM 数据库名 表名 查看所有字段编码 2 IDEA 点击File Settings Editor File E
  • 后端开发学习Vue(一)

    Vue的介绍 官网 https cn vuejs org Vue是一个简单容易上手前端框架 例如 下面的代码可以快速构建一个表格
  • rpy2库

    在数据分析中 Python和R各有千秋 虽然Python或R都能在数据分析打通关 从采集 清洗 预处理 分析 可视化 但是在不同的环节 不同的语言易用程度不同 Python胜在干脏活累活 诸如数据采集 数据清洗 机器学习等 而R语言胜在统计