当前位置: 首页>編程日記>正文

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

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

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

wxsync-2020-07-c187bbab480c6ca8250c6739c023502a.png

这是pycharm的界面 ↑↑↑

那经典的 Rstudio呢?

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

熟悉的界面

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

wxsync-2020-07-dafcc9c58f8ced2982c69dcf76c13ee4.png

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

wxsync-2020-07-a347a44b65c00f6db37b686f34a8fa67.png

环境配置

1、安装python运行环境,推荐Anaconda。https://www.anaconda.com/distribution/2、安装R与RstudioR官网: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,安装过为TRUEpy_available()#选择python版本use_python("/anaconda3/bin/python")#指定包含Python virtualenv的目录use_virtualenv()  #指定Conda环境的名称use_condaenv()

wxsync-2020-07-a3d915d7d37f8aeb26a6bafa79876de7.png

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

library(reticulate)os <- import("os")os$listdir() #查看文件os$getcwd() #返回工作路径os$chdir("../Desktop/") #修改工作路径py_install(packages = "numpy") #安装numpynumpy <- import(“numpy”) #加载numpyy <- array(1:4, c(2, 2)) x <- numpy$array(y) #构建数组

安装python包

wxsync-2020-07-88d551f772bc672f8c7017bd49ef7618.png

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

交互式使用Python

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

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

简单绘图测试

方法一:使用R包,然后直接在Rscript中绘制:

library(reticulate)repl_python()import numpy as npimport matplotlib.pyplot as pltsize = 3x = 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, 2width = total_width / nx = x - (total_width - width) / 2labels = ['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中直接运行

wxsync-2020-07-09af8afd4de3dee8291823b359d4842b.png

当然,支持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


https://www.fengoutiyan.com/post/15156.html

相关文章:

  • r语言和java
  • c语言调用R语言
  • python与r语言哪个好
  • r语言怎么用
  • python调用c语言
  • r语言爬虫
  • r语言cbind
  • R语言使用
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機