首页 » 脚本文章 » 同一个项目中让R和Python无缝工作的五种方法(项目无缝五种工作方法)

同一个项目中让R和Python无缝工作的五种方法(项目无缝五种工作方法)

神尊大人 2024-07-23 17:55:19 脚本文章 0

扫一扫用手机浏览

文章目录 [+]

现在,在RStudio IDE中使用两种语言进行操作确实非常容易。
为此,您需要在R中安装和加载网状软件包。
您可以执行以下五项操作,以使您在同一项目中获得两种语言的无缝编码体验:

在项目启动时定义Python环境

为避免与使用错误的Python解释器相关问题,首先需要在项目启动时通过创建.Rprofile文件并将其保存在项目目录中来定义Python环境。
您的.Rprofile包含将在您的项目启动时执行的代码。
我通常在.Rprofile中有这两行代码:

Sys.setenv(RETICULATE_PYTHON = "<path>") print(paste("Python environment forced to", Sys.getenv("RETICULATE_PYTHON")))

其中,是您要使用的Python环境中Python可执行文件的路径。
第一个命令将其设置为您的python可执行文件。
第二个命令将打印此确认,该确认将在您每次启动项目时显示在您的终端中。
这是我启动一个项目时终端的外观:

同一个项目中让R和Python无缝工作的五种方法(项目无缝五种工作方法) 同一个项目中让R和Python无缝工作的五种方法(项目无缝五种工作方法) 脚本文章
(图片来自网络侵删)

使用repl_python()在Python中实时编码

在项目中如果需要测试Python和R可以使用 Reticulate软件包中的repl_python()函数将R终端切换到Python终端,以便您可以在Python中进行实时编码。
您可以使用exit命令退出它,然后在R中编写更多代码,然后再回到Python终端,它仍然会记住上一个会话中的所有对象,这意味着它很容易在各种语言之间无缝地移动。
这是一个简单的示例:

在Python和R之间交换对象

可以在Python和R之间交换任何相当标准的数据对象,例如值,列表和dataframes 。
要在Python中使用名为myrobject的R对象,可以使用r.myrobject进行调用。
要在R中使用名为mypythonobject的Python对象,可以使用py $ mypythonobject进行调用。
这是另一个实际的操作示例,其中我将R中的themtcars数据集引入了Python:

同一个项目中让R和Python无缝工作的五种方法(项目无缝五种工作方法) 同一个项目中让R和Python无缝工作的五种方法(项目无缝五种工作方法) 脚本文章
(图片来自网络侵删)

数据对象将根据不同的语言转换为它们的等效结构。
例如,R中的列表将被翻译成Python中的字典:

将Python函数转换为R函数

当同时使用这两种语言时,你最终会需要将Python代码作为一个R的函数来执行.如果将编写的Python函数写到一个文件中,然后R中调用source_python(),那么这个文件可以以源代码文件的形式使用。
下面是一个简单的例子,我写了一个Python函数将两个数字相加,并将其保存在文件sumof.py中:

def sumof(a, b): return a+b

现在,我可以获取sumof.py并将其变成和R函数:

创建包含R和Python代码的MD文档

正确设置.Rprofile后,您可以创建具有两种语言代码块的文档,并且可以在代码块之间交换对象。
以下是一些简单的R Markdown代码,用以说明这一点:

这会产生以下输出:

同样,你可以用一种语言编写函数,在另一种语言中轻松使用它们:

对我来说,这个功能让我的工作中有了更多的可能。
我希望这些技巧能够帮助您开始探索Python和R所提供的最佳功能。

作者:Keith McNulty

deephub翻译组

标签:

相关文章

上古卷轴吸血鬼病暗影中的诅咒之谜

《上古卷轴》作为一款经典的奇幻游戏,自问世以来,便以其独特的世界观和丰富的故事情节吸引了无数玩家。在游戏中,吸血鬼病作为一项神秘而...

脚本文章 2025-02-18 阅读0 评论0