⼀个R包—reticulate—在R中调⽤Python
python怎么读取py文件  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结合起来使⽤了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。