rpy2库 | 在jupyter中调用R语言代码

在数据分析中,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】获取本文代码和数据
(0)

相关推荐

  • Python代码编辑器哪个好?这五个最常见!

    当我们初入门学习Python的时候,选择一款好用的Python代码编辑器是很重要的,可以让我们的开发效率事半功倍,今天小编为大家介绍五款顶级Python代码编辑器! 1.Sublime Text:Su ...

  • 在VSCode中调试R语言.r文件

    安装了插件R之后,还需要安装插件R Debugger. 安装完该插件后,安装R包vscDebugger. 但是,这个包不能用install.packages("name")方式安装 ...

  • R语言代码相关疑问标准提问

    关于如何提问,如何高效沟通,其实我们讲解了非常多了,比如我一直推崇的邮件交流:如果你希望我回答你的问题 ,然后也会随机抽取粉丝提问进行解答:答读者问第一弹:R里面差异分析的limma包用法细节 .也高 ...

  • 几行R语言代码即可绘制火山图?

    火山图 火山图(volcano plot)常用于显著差异基因表达的展示,包含显著和差异两个重要信息.显著性指P值小于0.05,差异性常用FoldChange值>=2作为筛选标准. 那么如何看懂一 ...

  • R语言中的偏最小二乘回归PLS-DA

    原文链接:http://tecdat.cn/?p=8890 主成分回归(PCR)的方法 本质上是使用第一个方法的普通最小二乘(OLS)拟合来自预测变量的主成分(PC).这带来许多优点: 预测变量的数量 ...

  • R语言中进行期权定价的Heston随机波动率模型

    原文链接:http://tecdat.cn/?p=12111 在本文中,我将向您展示如何模拟股票价格的Heston随机波动率模型. Heston模型是一种期权估值方法,它考虑到同一资产在给定时间交易的 ...

  • 浅析R语言单因素方差分析中的多重比较

    浅析单因素方差分析中的多重比较 本脚本侧重于单因素方差分析中多重比较方法的运用; 就不展示数据正态性及齐次性的运算了(默认都符合,一般理化数据是都符合的); 有的人喜欢用Tukey检验,但会遇到一些不 ...

  • R语言计算资本资产定价模型(CAPM)中的Beta值和可视化

    原文链接:http://tecdat.cn/?p=22588 今天我们将计算投资组合收益的CAPM贝塔.这需要拟合一个线性模型,得到可视化,从资产收益的角度考虑我们的结果的意义. 简单的背景介绍,资本 ...

  • R语言使用马尔可夫链对营销中的渠道归因建模

    原文链接:http://tecdat.cn/?p=5383介绍在这篇文章中,我们看看什么是渠道归因,以及它如何与马尔可夫链的概念联系起来.我们还将通过一个电子商务公司的案例研究来理解这个概念如何在理论 ...

  • 技术贴 | R语言:geom_smooth在散点图中添加多条回归直线

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 R语言lm函数可对两组数据进行回归分析.geom_point函数可以将数据绘制成散点图,geom_smooth函数可 ...