在Python

时间:2018-04-19 13:16:24

标签: python r rpy2

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

import rpy2.robjects as robjects
r=robjects.r
output = r.source("sample.R")

现在我打印输出

print (output)

我只将脚本的最后一个变量作为输出,而不是所有的变量(我没想到的。我也在想,如果我调用c或数据,结果将被打印出来,但是python没有识别这些用R)编码的变量。我不知道如何调用所有这些变量。

我在R脚本中编写非常简单的代码仅用于测试。我的R脚本看起来像:

a <- 1
b <- 3
c <- a + b 
data = 1:20

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

$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

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

此致

1 个答案:

答案 0 :(得分:2)

您的变量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"])