一个R包—reticulate—在R中调用Python
R语言和python语言是生信行业经常使用的两个计算机语言,R语言具有统计和画图方面的优势,但是R语言在文件读写上的速度实在不敢恭维;Python具有较快的文件读写功能,但是其统计和画图却不如R语言用着方便。
今天介绍一个R包——“reticulate”,可以在R语言中直接调用Python,这样就可以把Python读写的优势和R语言统计画图的优势结合起来了。
首先安装R包,对于R包的安装,可以以下两种方式,一个是R自带的install.packages(),一个是基于BiocManager包的BiocManager::install(),推荐使用BiocManager::install(),这种方法可以安装的包更多一些,较为方便。
1 | BiocManager:: install ( "reticulate" ) |
reticulate包实现在R中直接调用Python命令,并且可以直接使用Python命令产生的变量。
reticulate包提供repl_python()和exit命令,实现进入Python代码块和退出Python代码块,在repl_python()和exit之间的代码为Python代码,其他代码为R代码。
示例:
1 2 3 4 5 6 7 | repl_python() ###进入python代码快 fileIN = open ( "E:/a.txt" ) a = [] for i in fileIN: a.append(i) fileIN.close() exit ###退出代码块 |
以上Python代码读取了一个叫a.txt的文件,并把每行内容存进列表里(Python里的列表相当于R里的向量)。
接下来展示退出Python代码块后如何使用在Python里的变量。
1 2 3 4 | aArr <- py$a for (i in aArr){ print (i) } |
使用py$a就把Python代码块里的变量赋值给了R里的变量。
如果想要反向使用,即想在Python代码块里使用R的变量,怎么用呢?以下是示例:
1 2 3 4 5 6 7 | a < - py$a print (length(a)) repl_python() b = r.a ###使用r.a就把R里的变量a赋值给了Python代码块里的变量b print ( len (b)) exit |
这样,利用reticulate包我们就可以把Python和R结合起来使用了。
本文作者:无忧书房
本文链接:https://www.cnblogs.com/KanRiChu/p/12155699.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步