如何将 R 变量传递给 Pycharm 中的 Python 变量?

How to pass an R variable to a Python variable in Pycharm?

我是新来的Pycharm;但是,我想利用我的 R 和 Python 知识。我是这两种语言的忠实粉丝,并且我不断地学习更多关于它们的知识。 我希望将 R 变量传递给 Python 变量,类似于 Jupyter Notebook。 我无法在任何地方找到任何示例代码。

R码

x <- 5

python代码

# Some conversion method needs to be added
print(x)

Python 控制台

>>>5

这是可能的,因为 Jupyter 提供了自己的代码运行内核。该内核能够在语言之间转换变量。

Pycharm 不提供内核,而是通过系统上的解释器直接执行 Python 代码。这类似于 python my_script.py。 AFAIK vanilla Pycharm 根本不执行 R。

Pycharm 有支持 R 和 Jupyter 笔记本的插件。您或许可以找到一款满足您需求的产品。

我通常通过简单地遵循 Unix 哲学来解决这个问题:

Rscript foo.R | python bar.py

其中 foo.R 将数据打印到 STDOUT 并且 bar.py 期望从 STDIN 读取数据(您也可以 read/write 从文件中读取)。这种方法当然需要您在脚本之间定义一个清晰的数据接口,而不是不加区别地传递所有变量,我个人并不介意,因为我这样做是出于设计最佳实践的考虑。

还有像 reticulate 这样的软件包,它允许您从一种语言调用另一种语言。如果您经常切换语言,这可能会更有用。

感谢以上回答!太棒了。我确实找到了可以帮助其他使用 pycharm 的人的解决方案。 如果你已经安装了R插件选项,你可以使用下面的代码。

Python 保存到羽毛文件的代码:

```
import pyarrow.feather as feather

data = pd.read_csv('C:/Users/data.csv')
feather.write_feather(data, 'C:/Users/data.feather')
```

检索羽毛文件的R代码

```
library(tidyverse)
library(feather)
library(arrow)

data <- arrow::read_arrow('C:/Users/data.feather')
print(data)
```

然而,这个过程看起来非常类似于在 Python 中将文件写入 csv,然后将 csv 上传到 R。可能存在某种类型的轻量级存储差异、速度处理和语言变量 agnostic/class 翻译。下面是官方文档:Git:https://github.com/wesm/feather 阿帕奇之箭:https://arrow.apache.org/docs/python/install.html RStudio:https://www.rstudio.com/blog/feather/