如何使用参数从python运行R函数?

时间:2017-07-25 13:31:03

标签: python r subprocess

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函数?

2 个答案:

答案 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