R语言和python语言是生信行业经常使用的两个计算机语言,R语言具有统计和画图方面的优势,但是R语言在文件读写上的速度实在不敢恭维;Python具有较快的文件读写功能,但是其统计和画图却不如R语言用着方便。
  今天介绍一个R包——“reticulate”,可以在R语言中直接调用Python,这样就可以把Python读写的优势和R语言统计画图的优势结合起来了。
  首先安装R包,对于R包的安装,可以以下两种方式,一个是R自带的install.packages(),一个是基于BiocManager包的BiocManager::install(),推荐使用BiocManager::install(),这种方法可以安装的包更多一些,较为方便。
BiocManager::install("reticulate")
  reticulate包实现在R中直接调用Python命令,并且可以直接使用Python命令产生的变量。
  reticulate包提供repl_python()和exit命令,实现进入Python代码块和退出Python代码块,在repl_python()和exit之间的代码为Python代码,其他代码为R代码。
示例:
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里的变量。
aArr <- py$a
for(i in aArr){
print(i)
}

  使用py$a就把Python代码块里的变量赋值给了R里的变量。

  如果想要反向使用,即想在Python代码块里使用R的变量,怎么用呢?以下是示例:

a <- py$a
print(length(a)) repl_python()
b = r.a ###使用r.a就把R里的变量a赋值给了Python代码块里的变量b
print(len(b))
exit

  这样,利用reticulate包我们就可以把Python和R结合起来使用了。

 
 

一个R包—reticulate—在R中调用Python的更多相关文章

  1. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

  2. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  3. 在Java中调用Python

    写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...

  4. 在Java中调用Python代码

    极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

  5. C++中调用Python脚本

    C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库, 需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了 先看Python的代码 代 ...

  6. C++中调用Python脚本(转载)

    转载▼ 标签: 杂谈 C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库,需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了先看Py ...

  7. 在QT C++中调用 Python并将软件打包发布(裸机可运行)

    为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件.最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中 ...

  8. C#中调用python方法

    最近因为项目设计,有部分使用Python脚本,因此代码中需要调用python方法. 1.首先,在c#中调用python必须安装IronPython,在 http://ironpython.codepl ...

  9. android开发中调用python代码(带参数)

    android开发主要用到的是java代码,但是当开发涉及到一些算法时,往往用python可以提高软件的运行速度,也更加便捷,这里分享自己项目调用python代码的方式,主要有以下几个步骤(个人方法, ...

  10. 在java中调用python方法

    1.http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录 示例: 1.摘自:http://blog.csdn.n ...

随机推荐

  1. SpringBoot 设置编码UTF-8

    第一种  通过过滤器来设置 @Configuration public class UtfConfig { @Bean public FilterRegistrationBean filterRegi ...

  2. Graphische Datenverarbeitung Ⅰ 学习笔记

    1. Pipeline 1.1 Graphische Primitive 1.2 Model and View Transform 1.3 Vertex Shading 1.4 Clipping 1. ...

  3. Redis工具可视化工具Redis Desktop Manager(附安装包)

    前言 redis工具,我相信每个开发都需要,如果每次查都去client执行指令,我怕查完之后,老大就要发版咯.我之前一直用的Redis可视化工具RedisDesktopManager,总觉得差点意思, ...

  4. 4.4 Linux解压.zip格式的文件(unzip命令)

    unzip 命令可以查看和解压缩 zip 文件.该命令的基本格式如下: [root@localhost ~]# unzip [选项] 压缩包名 此命令常用的选项以及各自的含义如表 1 所示. 选项 含 ...

  5. 研发LLM模型,如何用数值表示人类自然语言?

    上一篇:<人工智能--自然语言处理简介> 序言:人工智能大语言模型(LLM)如何理解人类的自然语言?这个过程的核心在于将文本转化为计算机能处理的数值形式,经过计算,最终达到对语言的理解.起 ...

  6. ABP发布后通过外部URL调用不到方法

    MVC要与Host项目发布保持同步,如果Host工程不保持同步就会导致调用不到新的方法,因为找不得新的dll.

  7. P9150 邮箱题

    P9150 邮箱题 Alex_Wei 做法妙. 思路 首先我们可以建出两张图,一张是按照题目的要求形成的有向图,一张是由有向边 \((i,k_i)\) 形成的钥匙图. 在钥匙图中,每个点有且仅有一入度 ...

  8. 2023NOIP A层联测25 T2 游戏

    2023NOIP A层联测25 T2 游戏 优秀且新颖的期望题. 思路 分析问题,由于双方都是最优策略,所以可以说学生知道老师会选择那些教室设置概率(概率设置好就不能改变),老师也知道学生会怎样选择教 ...

  9. Windows 使用 Intel(R) Arc(TM) GPU 推理ONNX 模型

    这不刚换了一个笔记本电脑,Thinkpad T14P,带有Intel ARC GPU,今天我们来尝试用这个GPU来推理ONNX模型. 环境安装 查阅了相关文档,最好使用py310环境,其他版本可能存在 ...

  10. nodejs版本管理工具之n

    转载: https://juejin.cn/post/7065534944101007391 Node.js 对于现在的前端开发人员来说是不可或缺的需要掌握的技能,但我们在使用时避免不了会需要切换不同 ...