Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将参数从Mac上的JuPyter笔记本传递到R脚本,反之亦然?_Python_R_Jupyter Notebook - Fatal编程技术网

Python 将参数从Mac上的JuPyter笔记本传递到R脚本,反之亦然?

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'

我有一个JuPyter笔记本(Python),希望将参数列表传递到R程序(单独存储在同一目录中)。在R程序执行后,它将把结果传回JuPyter笔记本

我在macOS上

因此,我的问题如下:

  • 如何将参数从JuPyter(Python)传递到R?我尝试过使用subprocess.Popen,但它似乎不起作用
  • 看来程序没有运行。如果我打印
    结果
    ,我会得到:

    ARGUMENT'/Users/me/Desktop/rProgram.R'\uu被忽略\uuuu\n\n“,b“致命错误:必须指定'--save'、'--no save'或'--vanilla'\n”)

  • 我的第二个问题是,如何让R程序在JuPyter中将一些变量传回Python?或者等效地,如何让Python从R程序获取这些变量

  • 发现上面我的目录中有一些错误。在Mac上,Rscript路径为
    /Library/Frameworks/R.framework/Versions/Current/Resources/Rscript
    。我在上面的原始代码中的路径似乎不会运行R的实例

  • 在Python方面:
  • x
    是从rProgram.R脚本传回的必需参数

  • 在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)