作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Python 数学优化算法,每次我必须评估函数值时,我都必须调用 R 脚本,其中编写了模拟代码(基于模拟的优化)。在尝试链接这两个代码之前,我想了解如何更轻松地链接某些内容。假设我有这个小 R 脚本:
x <- c(1,2,3,4,5,6)
y <- c(2,3,4,54)
x1 <- mean(x)
y1 <- mean(y)
z <- x1 + y1
print(z)
我想从 Spyder (Anaconda) 调用它,以便 z 显示在我的控制台上。我已经阅读了有关 rpy2 库的内容,但据我了解(如果我错了,请纠正我),我应该用 Python 编写等效的 R 代码。有谁知道更简单的方法来做到这一点? (我无法在 R 中很好地编写代码,因此,我无法翻译我拥有的模拟代码)。如有必要,R 将安装在 Windows 环境中,如 Anaconda。先感谢您!
最佳答案
在尝试了其他几个选项之后,子流程似乎工作得足够好。您可以通过子进程从 Python 运行 R 脚本并提供函数值作为参数 (x):
def R_script_runner(x):
import subprocess
output=subprocess.run(
["your_path_to_R_source_folder/Rscript.exe", "your_path_to_R_script/R_script.R", x],
shell=True, stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).stderr
return output
R 脚本将执行其应该执行的操作。函数返回的输出主要用于调试目的,因此您可以打印它或以其他方式进行评估..
关于python - 如何从 Spyder (python) Anaconda 调用 R 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090479/
我是一名优秀的程序员,十分优秀!