簡體   English   中英

將 arguments 從 Mac 上的 JuPyter 筆記本傳遞給 R 腳本,反之亦然?

[英]Passing arguments to a R script from a JuPyter notebook on a Mac and vice versa?

我有一個 JuPyter 筆記本(在 Python 中),並希望將 arguments 列表傳遞給 R 程序(單獨存儲在同一目錄中)。 R 程序執行后,會將結果傳回 JuPyter notebook。

我在 macOS 上。

所以我的問題如下:

  1. 如何將 arguments 從 JuPyter (Python) 傳遞給 R? 我嘗試過使用 subprocess.Popen,但它似乎沒有用。
    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()

程序似乎沒有運行。 如果我打印results ,我會得到:

ARGUMENT '/Users/me/Desktop/rProgram.R' __ignored__\n\n", b"Fatal error: you must specify '--save', '--no-save' or '--vanilla'\n")

  1. 我的第二個問題是,我如何做同樣的事情來讓 R 程序將它的一些變量傳回 JuPyter 中的 Python? 或者等效地,我如何讓 Python 從 R 程序中獲取這些變量?

發現這是我上面的目錄中的一些錯誤。 在 Mac 上,Rscript 路徑以/Library/Frameworks/R.framework/Versions/Current/Resources/Rscript的形式給出。 看起來我在上面的原始代碼中的路徑不會運行 R 的實例。

  1. 在 Python 端:
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)

x是從 rProgram.R 腳本傳回的必需參數。

  1. 在 R 端:
# 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM