myScript.R:
model <- function(data)
{
Do some stuff
}
的Python:
import subprocess
def execution(data):
exp=subprocess.Popen(["Rscript", "myScript.R"],stdout=subprocess.PIPE, bufsize=-1)
for line in exp.stdout:
if line[0:3]=="[1]":
return line
如何将数据参数传递给我的R函数?
答案 0 :(得分:0)
Rpy2包适用于此类内容,有关您的问题的文档可在此处找到:https://rpy2.readthedocs.io/en/version_2.8.x/introduction.html#calling-r-functions
答案 1 :(得分:0)
一种方法是使用https://rpy2.bitbucket.io/提供的python包rpy2和https://rpy2.readthedocs.io/en/version_2.8.x/上的文档
R包可以通过pip或分发存储库(包括macports和标准linux发行版)广泛使用。
在你的情况下,
from rpy2 import robjects as r
r.r.source('your_r_script.R')
在此阶段,your_r_script
中包含的函数将加载到`r.r&#39;对象,您可以像访问R:
output = r.r['your_function_name'](param1, param2, param3)
output
将是一个所谓的r对象,您可以根据其中包含的内容或多或少地直接访问它。
如果是列表,则使用方法rx2
访问其系数,例如:output.rx2(1)
将为您提供列表的第一个元素,output.rx2('param')
将为您提供元素名为&#39; param&#39;的列表如果这是一个数组,则使用方法rx
。
再次,请参阅docs。