在R Markdown中运行Python
R Markdown——绝不只R
R Markdown、RStudio可能背了名字的锅,咋一看总让人以为是R的专属编辑器,但R Markdown和RStudio绝不止R,还可以编写Python、Julia、C、JavaScript、SQL等等。如下图打开RStudio,可以建立Python、C、C++、JavaScript、HTML等文件。
![](https://i-blog.csdnimg.cn/blog_migrate/cacc3ec65349335d5bd0da92890ecc7c.png)
同时,R Markdown 也支持PDF、Word、PPT、网页等多种输出格式 ,绝对的编辑利器啊!
R Markdown的安装与配置
安装RStudio
Rstudio的安装与更新可以到官网链接下载,选择Free的RStudio Desktop即可。
Rstudio v1.12版本及以上支持直接创建Python文件,可以直接新建Python File,进行Python的编写与运行。不知道有多少和我一样从R转Python的人,这波操作简直太良心了!转到Python,一切也都还是熟悉的配方:)
PS:笔者最近网很慢,所以直接下载预计用时大概要十几个小时… 如果有盆友和笔者一样悲惨的话,可以先下载XunLei(https://www.xunlei.com),再用它下载RStudio。如此一来,笔者大概1分钟内下载好了RStudio。
配置R Markdown
在RStudio中的console中运行install.packages("rmarkdown")
,安装rmarkdown包。
install.packages("rmarkdown")
![](https://i-blog.csdnimg.cn/blog_migrate/18e2ef2d61c158e7fbfdb03b07982408.png)
生成PDF需要LaTex或tinytex
包,这里强烈推荐安装tinytex
包!
理由如下:
tinytex
安装简单,仅需两行代码;tinytex
体积小,仅一百多兆,而 LaTeX发行版都超级大,动则几个G;tinytex
能自动安装LaTex缺失的包,可以多次编译文档,tinytex::latexmk()
能帮你搞定常见的LaTex问题。
在RStudio中的console中运行install.packages("tinytex")
和tinytex::install_tinytex()
,安装tinytex。
install.packages("tinytex")
tinytex::install_tinytex()
![](https://i-blog.csdnimg.cn/blog_migrate/96c2ba688cf3906dbcafd81a3ba06cf0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/56eb5b04c2dd8fbd3a204f3214132418.png)
RStudio中配置Python
在RStudio中运行python代码,需要reticulate
包,同样是install.packages("reticulate")
。
install.packages("reticulate")
![](https://i-blog.csdnimg.cn/blog_migrate/f6c2324a428d9dec15946147c4e8a61c.png)
在R Markdown中编译Python
新建一个Rmd文件,在其中的代码块中先输入{python, engine.path= '/opt/anaconda3/bin/python'}
指定使用的Python版本,即可进行python脚本的编译。笔者这里使用之前安装的anaconda中的Python。具体路径可以在cmd中输入which python
或whereis python
获得。
```{python, engine.path= '/opt/anaconda3/bin/python'}
import sys
print(sys.version)
![](https://i-blog.csdnimg.cn/blog_migrate/23ce936fb17a2fa0237203f71e72ec22.png)
点击Knit即可进行编译,编译过程及结果:
R Markdown的实时编译
可以安装写轮眼xaringan
,再调用函数 xaringan::inf_mr()
或者 RStudio 插件 “Infinite Moon Reader” 皆可开启实时预览:只需要保存当前的 Rmd 文件,写轮眼会自动重新编译它并刷新结果。
xfun::pkg_load2('xaringan')
![](https://i-blog.csdnimg.cn/blog_migrate/754710bc662a012455d9e8eaa66a186c.png)
对写轮眼幻灯片来说,究极无限月读更是可以让你一边打字一边预览。再也不用猛击Knit 按钮了!
注意:只支持 HTML 输出格式(因为背后涉及到 JavaScript 技术)。
参考链接:
[1]:如何配置R Markdown以及在R Markdown中配置python
[2]: 谢益辉:R Markdown 技能杂谈