在Rstudio中运行python / bash代码

时间:2015-12-14 09:27:27

标签: python r bash rstudio

我正在使用Rstudio作为我日常的R东西。有时,我想使用一些python / bash来表示R不擅长的部分。奇怪的是,我注意到如果我开始一个新的RMarkdown文档,以下代码可以工作:

```{r engine='python'}
print "Hello" + "World"
import random
print random.random()
```

python in rstudio

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)
```

3 个答案:

答案 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文档做同样的事情。