Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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
rpython从R调用python的替代方案?_Python_R - Fatal编程技术网

rpython从R调用python的替代方案?

rpython从R调用python的替代方案?,python,r,Python,R,我正在尝试使用从R调用python。效果很好。现在我正试图将我的R代码安装到一个包含4种不同Python的docker容器中。事实证明,它允许您指定python版本(RPYTHON\u python\u version),但不允许指定python的路径 那么,是否有另一个R包可以从R调用Python?您可以使用R的函数执行和捕获输出,将其作为子流程执行 从R执行Python脚本的示例: # run_splitstr.R command = "python" # Note the single

我正在尝试使用从R调用python。效果很好。现在我正试图将我的R代码安装到一个包含4种不同Python的docker容器中。事实证明,它允许您指定python版本(RPYTHON\u python\u version),但不允许指定python的路径


那么,是否有另一个R包可以从R调用Python?

您可以使用R的函数执行和捕获输出,将其作为子流程执行

从R执行Python脚本的示例:

# run_splitstr.R
command = "python"

# Note the single + double quotes in the string (needed if paths have spaces)
path2script='"path/to your script/splitstr.py"'

# Build up args in a vector
string = "3523462---12413415---4577678---7967956---5456439"
pattern = "---"
args = c(string, pattern)

# Add path to script as first arg
allArgs = c(path2script, args)

output = system2(command, args=allArgs, stdout=TRUE)

print(paste("The Substrings are:\n", output))

要捕获字符向量中的标准输出(每个元素一行),必须在system2中指定stdout=TRUE,否则只返回退出状态。当stdout=TRUE时,退出状态存储在一个名为“status”的属性中。

您可以使用R的函数执行并捕获输出,将其作为一个子流程执行

从R执行Python脚本的示例:

# run_splitstr.R
command = "python"

# Note the single + double quotes in the string (needed if paths have spaces)
path2script='"path/to your script/splitstr.py"'

# Build up args in a vector
string = "3523462---12413415---4577678---7967956---5456439"
pattern = "---"
args = c(string, pattern)

# Add path to script as first arg
allArgs = c(path2script, args)

output = system2(command, args=allArgs, stdout=TRUE)

print(paste("The Substrings are:\n", output))

要捕获字符向量中的标准输出(每个元素一行),必须在system2中指定stdout=TRUE,否则只返回退出状态。当stdout=TRUE时,退出状态存储在一个名为“status”的属性中。我相信只有后者虽然不太成熟,但可以同时使用多个python版本/环境。

有和。我相信只有后者虽然不太成熟,但可以同时使用多个python版本/环境。

谢谢,这是合理的。我想调用一个Python函数,而不是一个进程,但也许我必须缩减和更改。谢谢,这是合理的。我想调用Python函数,而不是进程,但可能我必须缩减和更改。@hrbrmstr这是一个相当蹩脚的被动攻击性响应,但如果您将其作为答案提交,我将接受它。特别是,我尝试了网状,它看起来相当不错。@hrbrmstr这是一个相当蹩脚的被动攻击性反应,但如果你提交它作为答案,我会接受它。特别是,我尝试了网状,它看起来相当不错。