在 Python 中运行 R 脚本

Jaw*_*aws 4 python r rpy2

我正在使用以下代码在 python 中运行一个简单的 R 脚本。

import rpy2.robjects as robjects
r=robjects.r
output = r.source("sample.R")
Run Code Online (Sandbox Code Playgroud)

现在当我打印输出时

print (output)
Run Code Online (Sandbox Code Playgroud)

我将脚本的最后一个变量仅作为输出而不是所有变量(这是我没想到的。另外我在想如果我调用 c 或数据,结果将这样打印,但 python 没有识别这些变量R)。我不确定如何调用所有这些变量。

我正在用 R 脚本编写非常简单的代码只是为了测试。我的 R 脚本如下所示:

a <- 1
b <- 3
c <- a + b 
data = 1:20
Run Code Online (Sandbox Code Playgroud)

现在在调用脚本并打印结果时,我在输出中得到以下内容。我不确定发生了什么。

$value

 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20



$visible

[1] FALSE
Run Code Online (Sandbox Code Playgroud)

我不确定如何准确地打印变量,因为它是从 R 到 python 的。请指导我。您的帮助将不胜感激。

问候

klu*_*luu 6

你的变量output只会存储源文件的输出,这正是你得到的,id est最后一个变量。但是所有变量实际上都存在于某个 R 环境中,您可以使用robjects.globalenv. 知道您可以轻松检索您在 R 中创建的每个变量的值:

import rpy2.robjects as robjects
robjects.r.source("sample.R")
print(robjects.globalenv["a"])
print(robjects.globalenv["b"])
print(robjects.globalenv["c"])
print(robjects.globalenv["data"])
Run Code Online (Sandbox Code Playgroud)