1. sci666首页
  2. 实用技巧
  3. 生物信息学

如何在Rstudio中使用python 语言 (图文详解)

一直以来我们学习、测试python都会提到 Pycharm,不仅好用,还支持使用 R 语言。

如何在Rstudio中使用python 语言 (图文详解)

这是pycharm的界面 ↑↑↑

那经典的 Rstudio呢?

之前看到Y叔提到 好用的Python IDE 是 Rstudio,顺势搜索一番发现,有点意思。

熟悉的界面

熟悉的界面,直接在新建中选择 Python Script即可。

如何在Rstudio中使用python 语言 (图文详解)

直接运行一段测试代码,如果是从来没有进行过操作的,Rstudio 会默认下载 Miniconda进行环境搭建及包管理。

如何在Rstudio中使用python 语言 (图文详解)

环境配置

1、安装python运行环境,推荐Anaconda。
https://www.anaconda.com/distribution/
2、安装R与Rstudio
R官网:https://www.r-project.org/
官方网站:https://www.rstudio.com/
3、安装reticulate包。

install.packages("reticulate")
install.packages("Rcpp")

在R中运行python包都要通过这个进行下载安装,可以理解为一个R-Python接口

测试安装环境

#加载reticulate包
library(reticulate)
#检查您的系统是否安装过Python,安装过为TRUE
py_available()
#选择python版本
use_python("/anaconda3/bin/python")
#指定包含Python virtualenv的目录
use_virtualenv()  
#指定Conda环境的名称
use_condaenv()  

 

如何在Rstudio中使用python 语言 (图文详解)

然后要在console中去输入代码,,或者通过以下的方法进行,代码不够精简,不推荐。

library(reticulate)
os <- import("os")
os$listdir() #查看文件
os$getcwd() #返回工作路径
os$chdir("../Desktop/"#修改工作路径

py_install(packages = "numpy"#安装numpy
numpy <- import(“numpy”) #加载numpy
y <- array(1:4, c(22)) 
x <- numpy$array(y) #构建数组

安装python包

如何在Rstudio中使用python 语言 (图文详解)

如果在尝试中出现错误,可能是由于conda环境等造成的。根据系统不同而分为两种不同的操作:对linux、mac是使用virtualenv;而Windows使用Anaconda。

交互式使用Python

#启动python命令行
repl_python()
-----------------
# 输入python代码
import pandas as pd
# 载入数据集
travel = pd.read_excel(“text.xlsx”)
# 显示数据集的行列数
travel.shape
# 获得R中所创建的对象mydata
r.mydata.describe()
pd.isnull(r.mydata.speed)
# 回到R
exit
-----------------
# py object获取python里的对象t
summary(py$t)

这样就可以使用Pandas读取和操作数据,然后使用ggplot2轻松绘制Pandas数据框,虽然python中也有ggplot2相应的绘图方式。

简单绘图测试

  • 方法一:使用R包,然后直接在Rscript中绘制:
library(reticulate)
repl_python()
import numpy as np
import matplotlib.pyplot as plt

size = 3
x = np.arange(size)
a = [364]
a_SD = [10.51.5]
b = [473]
b_SD = [0.512]

total_width, n = 0.82
width = total_width / n
x = x - (total_width - width) / 2
labels = ['Trial 1''Trial 2''Trial 3']

plt.bar(x, a,  width=width, yerr = a_SD, tick_label=labels, label='Control')
plt.bar(x + width, b, width=width, yerr = b_SD, tick_label=labels ,label='Experimental')

plt.legend()
plt.show()
exit
  • 方法二:在 Python script中直接运行

如何在Rstudio中使用python 语言 (图文详解)

当然,支持Rstudio的快捷键。

Rmarkdown

reticulate包含一个用于R Markdown的Python引擎,具有以下功能:

1)可在R会话中嵌入的单个Python会话中,运行Python块。同时Python块之间的共享变量/状态。

2)可打印Python输出,包括matplotlib的图形输出。

3)可使用py对象访问R中Python块中创建的对象。

4)使用r对象从Python中访问在R块中创建的对象。

```{python}
import pandas as pd
# 载入数据集
travel = pd.read_excel(“text.xlsx”)
```


```{r,fig.width=7, fig.height=3}
library(ggplot2)
ggplot(py$flights,aes(carrier,arr_delay)) + geom_point()
```

在加载reticulate包的情况下,是可以直接调用python的。

总体来看,在一些方面,的确Rstudio上直接运行python提供了便利,熟悉几个调用的方法就好啦。目前,唯一的问题是基于python画出来图是模糊的,需要再调试调试。

妈妈终于不用担心我装很多个工作台了

参考资料

https://www.jieandze1314.com/post/cnposts/rstudio-python/

https://zhuanlan.zhihu.com/p/35873037

https://link.zhihu.com/?target=https%3A//rstudio.github.io/reticulate/

我想在Rstudio中运行python

reticulate: R interface to Python

这些可能会帮助到你: 问答社区 | 共享百度SVIP | 留言建议

欢迎入群交流:生信分析群: 732179952 · Meta分析群: 797345521 · 医学科研交流群: 797345521

发表评论

登录后才能评论