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

2020-07-07 15:53:10 浏览数 (1)

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

这是pycharm的界面 ↑↑↑

那经典的 Rstudio呢?

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

熟悉的界面

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

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

环境配置

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

代码语言:javascript复制
install.packages("reticulate")
install.packages("Rcpp")

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

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

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

代码语言:javascript复制
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(2, 2)) 
x <- numpy$array(y) #构建数组
安装python包

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

交互式使用Python

代码语言:javascript复制
#启动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中绘制:
代码语言:javascript复制
library(reticulate)
repl_python()
import numpy as np
import matplotlib.pyplot as plt

size = 3
x = np.arange(size)
a = [3, 6, 4]
a_SD = [1, 0.5, 1.5]
b = [4, 7, 3]
b_SD = [0.5, 1, 2]

total_width, n = 0.8, 2
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的快捷键。

Rmarkdown

reticulate包含一个用于R Markdown的Python引擎,具有以下功能: 1)可在R会话中嵌入的单个Python会话中,运行Python块。同时Python块之间的共享变量/状态。 2)可打印Python输出,包括matplotlib的图形输出。 3)可使用py对象访问R中Python块中创建的对象。 4)使用r对象从Python中访问在R块中创建的对象。

代码语言:javascript复制
```{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画出来图是模糊的,需要再调试调试。

0 人点赞