使用网状将R变量传递给python脚本

时间:2018-09-26 21:12:19

标签: python r reticulate

我有一个python脚本,我希望使用网状软件包从R中运行。我想先在R中分配一些变量,然后将它们传递给脚本。不幸的是,当我运行脚本时,我惊讶地发现python无法识别变量。我在这里想念什么?谢谢

Python脚本(test.py):

print(x)

R代码:

library(reticulate)
x <- 5
source_python(test.py)

错误:

Error in py_run_file_impl(file, local, convert) : 
  NameError: name 'x' is not defined

1 个答案:

答案 0 :(得分:0)

我想到的解决方案是只创建一个函数。因此,如果在我的python代码之前是

z = x + 3

我的新python代码为:

def add_three(x):
    z = x + 3
    return z

然后我可以在R中运行:

x <- 5
source_python("test.py")
y <- add_three(x)

将y设为6。