Python 将参数从Mac上的JuPyter笔记本传递到R脚本,反之亦然?
我有一个JuPyter笔记本(Python),希望将参数列表传递到R程序(单独存储在同一目录中)。在R程序执行后,它将把结果传回JuPyter笔记本 我在macOS上 因此,我的问题如下:Python 将参数从Mac上的JuPyter笔记本传递到R脚本,反之亦然?,python,r,jupyter-notebook,Python,R,Jupyter Notebook,我有一个JuPyter笔记本(Python),希望将参数列表传递到R程序(单独存储在同一目录中)。在R程序执行后,它将把结果传回JuPyter笔记本 我在macOS上 因此,我的问题如下: 如何将参数从JuPyter(Python)传递到R?我尝试过使用subprocess.Popen,但它似乎不起作用 看来程序没有运行。如果我打印结果,我会得到: ARGUMENT'/Users/me/Desktop/rProgram.R'\uu被忽略\uuuu\n\n“,b“致命错误:必须指定'--save'
结果
,我会得到:
ARGUMENT'/Users/me/Desktop/rProgram.R'\uu被忽略\uuuu\n\n“,b“致命错误:必须指定'--save'、'--no save'或'--vanilla'\n”)
发现上面我的目录中有一些错误。在Mac上,Rscript路径为
/Library/Frameworks/R.framework/Versions/Current/Resources/Rscript
。我在上面的原始代码中的路径似乎不会运行R的实例
x
是从rProgram.R脚本传回的必需参数
#从Python检索参数
args
command = "/Library/Frameworks/R.framework/Resources/bin/R"
script = "/Users/me/Desktop/rProgram.R"
args = [1,2,3] # some arguments to pass to R
cmd = [command, script] + args
p = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
results = p.communicate()
command = "/Library/Frameworks/R.framework/Versions/Current/Resources/Rscript"
script = "/Users/me/Desktop/rProgram.R"
args = [1,2,3] # some arguments to pass to R
cmd = [command, script] + args
x = subprocess.check_output(cmd, universal_newlines = True, stderr = subprocess.STDOUT)
# Retrieve arguments from Python
args <- commandArgs(trailingOnly = TRUE)
# Perform some functions
some.value <- some.function(args)
# Passing the value back to Python
cat(some.value)