gpt4 book ai didi

r - Emacs中ESS和rpy2共享R进程

转载 作者:行者123 更新时间:2023-12-01 08:04:25 24 4
gpt4 key购买 nike

我是 R 的新用户,已经开始使用 Emacs Speaks Statistics (ESS)。我还使用 rpy2(R 的 python 接口(interface)),在这里我可以在 Emacs 中运行的 ipython shell 中启动 R 进程。

是否可以让 ESS 和 rpy2 以某种方式共享相同的 R 进程,这样我就可以在 Python/rpy2 中做一些编码来设置一些 R 对象,然后切换到 ESS 并直接运行 R 命令而不使用 python/rpy2?

例如,我会在 Emacs 中使用 M-x R 启动 R,然后在我的 ipython session 中让 rpy2.robjects.r 指向或使用这个正在运行的 R过程;或者我会使用 rp2.robjects.r 在 python 中启动 R,然后让 ESS 连接到 python 嵌入式 R 进程。

我猜想问题在于 rpy2 中的 R 进程嵌入在 python 解释器中,而且如果我可以不通过 rpy2 直接操作 R,表示 R 对象的 python 对象将变得“不同步”?我承认我没有完全了解 rpy2 和 Emacs 进程处理的工作原理......

最佳答案

您想要的是某种基于 rpy2 技术的 R 控制台。这并不难构建。

我想 R 的“eval”函数有一些 rpy2 接口(interface),所以您只需要一些 python 代码来读取行并将它们提供给 rpy2.eval(line) 或其他任何东西。然后,这将全部包含在一个漂亮的控制台式界面中,具有命令行调用和编辑等功能。

完成交互式 R 后,您将使用一些代码(不是“q()”!)退出控制台并取回您的 Python 解释器。

我认为这个东西还没有建成,但类似的东西已经建成了。 Quantum GIS( map 软件)的“manageR”插件提供了一个从 python 启动并使用 rpy 的 R 控制台。

如果您真的打算为此利用 ESS,那么您需要某种方式将 ESS 的输入发送到监听 python 进程,以提供给 R“eval”函数。有点超出我的范围。

关于r - Emacs中ESS和rpy2共享R进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5125183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com