我正在使用Rstudio作为我日常的R东西。有时,我想使用一些python / bash来表示R不擅长的部分。奇怪的是,我注意到如果我开始一个新的RMarkdown文档,以下代码可以工作:
```{r engine='python'}
print "Hello" + "World"
import random
print random.random()
```
Rstudio可以运行一些python。这非常有用,但我最好不仅可以通过降价功能运行,还可以通过控制台运行。在release notes中,建议支持语法突出显示。
我想知道,是否有任何方法可以将新控制台连接到Rstudio,以便我们也可以从IDE执行一些python / bash?看起来Rstudio似乎有一个如何连接到python的概念。最终目标是创建.Rmd
文档,并能够编辑/交互具有以下结构的文档:
# Use Case
Connect to an api that is supported in python
```{r engine='python', highlight=TRUE}
data = foobar_api.get(1000)
file_loc = open("~/data/filename.csv", "w")
file_loc(data)
file_loc.close()
```
Then analyse with R again.
```{r}
df <- read.csv("~/data/filename.csv")
summary(df)
```
答案 0 :(得分:4)
首先,您需要设置knitr
选项。
```{r}
knitr::opts_chunk$set(engine.path = list(python = '/anaconda/bin/python'))
```
从那时起它才起作用。
```{python}
import this
```
答案 1 :(得分:2)
如果您对Architect使用Eclipse或普通StatET,则可以安装PyDev插件,并像启动操作一样轻松启动并与Python控制台交互使用您的R控制台(当然,还有足够的支持编辑和处理.Rmd文件)
答案 2 :(得分:1)
这是knitr最好的一个例子,它允许multiple language engines。您可以考虑在VIM中仅针对这些情况编辑文件,因为您可以做一些与您提出的问题接近的乐趣:选择文本然后键入:
:'<,'>!python
在python和
中执行:<','>!R --no-save
在R中执行。有关详细信息,请参阅this question的答案。
以上并未完全解决用例,因为所选文本被命令的输出替换(在简单R命令的情况下从R版本等开始)。但是,可以使用this vimtip将输出发送到不同的缓冲区(读取:窗口)。
RStudio中的VIM模式非常优秀(它甚至支持可视块模式)。但它无法模仿所有内容,并且RStudio中的:!python
将无效。我经常在RStudio和VIM上打开文档,上面的内容可能是你为混合语言的Rmd文档做同样的事情。