我想围绕R库Rdtq( https://github.com/cran/Rdtq )编写一个Python包装器。 该库(或更确切地说,类实例)将两个函数作为主要输入:漂移f(x)和扩散g(x)。 例如,

my_drift = function(x) { -x }
my_diff  = function(x) { rep(1,length(x)) }

由于我正在围绕Rdtq类编写包装器,因此我想直接从Python传递漂移和扩散函数,最好是通过lambda函数传递

my_python_drift(x) = lambda x: -x
my_python_diff(x)  = lambda x: np.ones(len(x))

等等。 因此,更笼统地说,我的问题是:是否可以通过rpy2将Python lambda(或全局)函数作为参数传递给R?

#1楼 票数:0

考虑使用rpy2的SignatureTranslatedAnonymousPackage(STAP)导入任意R代码作为Python环境中的可用包。 为了演示,下面使用rpy2将用R编写的Rdtq github转换为Python:

[R

# Loading required package: Rdtq
require(Rdtq)

# Assigning drift and diff functions
mydrift = function(x) { -x }
mydiff = function(x) { rep(1,length(x)) }

# Running rdtq()
test = rdtq(h=0.1, k=0.01, bigm=250, init=0, fT=1,
            drift=mydrift, diffusion=mydiff, method="sparse")

# Plotting output
plot(test$xvec, test$pdf, type='l')

蟒蛇

from rpy2 import robjects 
from rpy2.robjects.packages import STAP
from rpy2.robjects.packages import importr

# Loading required package: Rdtq
Rdtq = importr('Rdtq')

fct_string = """
my_drift <- function(x) { -x }
my_diff  <- function(x) { rep(1,length(x)) }
"""

# Creating package with above drift and diff methods
my_fcts = STAP(fct_string, "my_fcts")

# Running rdtq() --notice per Python's model: all methods are period qualified
test = Rdtq.rdtq(h=0.1, k=0.01, bigm=250, init=0, fT=1,
                 drift=my_fcts.my_drift(), diffusion=my_fcts.my_diff(), method="sparse")

# Load plot function
plot = robjects.r.plot

# Plotting by name index
plot(test[test.names.index('xvec')], test[test.names.index('pdf')], type='l')

  ask by user56643 translate from so

未解决问题?本站智能推荐:

1回复

将python对象传递给rpy2中的R函数

我正在使用Python 2在Jupyter笔记本中工作,并希望使用rpy2绘制热图。 给我错误 如何正确将参数传递给此函数? 规格:带有R3.3.3和Python 2.7的rpy2 2.5.6
1回复

rpy2问题,nls将list()作为参数从python传递给R

我正在尝试使用numpy数组中的rpy2拟合非线性曲线,但是由于我不知道如何在R端传递'start'参数而被卡住了。 我使用R 2.12.1和python 2.6.6 谁能帮我确定如何将list()对象传递给nls公式? 我的代码的相关部分是这样的:
2回复

使用 rpy2 将 Python 变量传递给 R

我有在 MySQL 数据集上执行 GLM 的基本 R 脚本。 在 bash 中使用 Rscript 运行良好。 但是我想在 python 脚本中调用它,这样我就可以将它添加到循环中,我可以创建 sql 语句,但我似乎无法使用 rpy2 将它传递给 R; 如果我打印 sql_scores,我可以直
1回复

如何使用rpy2从Python传递日期到R

我想从R调用一个需要Date对象的函数。 我很难用Rpy2来调用这个函数。 这是一个例子:一个采用日期的R函数 现在我想从python中调用这个函数 最后一行抛出异常 任何想法如何我可以将日期从python传递给R中的函数期待as.Date(xxx)参数?
2回复

通过rpy2将列表从python传递到R

我试图通过rpy2从python内部对R包( ks )进行简单的调用。 这是我要实现的目标: 我尝试遵循rpy2的文档,但是非常稀缺。 任何帮助,将不胜感激。
1回复

使用rpy2从Python调用R函数

我一直在遵循rpy2文档中有关使用R的OOPS的说明: https ://rpy2.readthedocs.io/en/version_2.8.x/robjects_oop.html。 我正在尝试创建一个Python类来调用R包randomForestSRC中的函数rfsrc。 在什么条
1回复

在python中创建Dataframe,将其作为参数传递给R中的函数,但是dataframe列不可访问。 使用RPy2

python函数中的输入值如下所示。 在每次迭代中(将在R中访问),将input_X的键存储为“ 0”和“ 1”,将其转换为dict。 X更改为R Dataframe: 它调用R函数: 现在来到R: 给出错误,指出列“ 1”不存在。 那么解决这个问题的正确方法
1回复

如何将列表传递给rpy2中的R并返回结果

我正在尝试第一次使用rpy2。 假设我在python中有一个列表 我想打电话给R 我怎样才能做到这一点? 我最初的尝试是 当我得到时,这显然不是正确的方法 什么是正确的方法?