Rpy2:将R magic单元重构为Python函数

时间:2017-10-16 12:03:50

标签: python r rpy2

现在我在Jupyter笔记本中使用Rpy2来适应von Mises发行版,代码是

%load_ext rpy2.ipython
%R require(movMF)

%%R -i dir_data,n_vM_dir -o theta,alpha
result = movMF(dir_data, n_vM_dir, nruns = 10)
theta = result$theta
alpha = result$alpha
  • 输入:dir_datan_vM_dir
  • 输出:thetaalpha

它将在Python中使用dir_datan_vM_dir变量并将它们传递给R.在拟合之后,thetaalpha将传回Python,所以我可以在以后的分析中使用它们。

现在,我想将代码重构为Python函数,所以我可以重用它,我该怎么做?

到目前为止我能做到这一点

import rpy2.robjects as robjects
# pass dir_data, n_vM_dir into R
robjects.r('''
    result = movMF(dir_data, n_vM_dir, nruns = 10)
    theta = result$theta
    alpha = result$alpha
''')
theta = robjects.r('theta')
alpha = robjects.r('alpha')
# Return theta, alpha

我可以通过robjects.r访问数据,主要问题是

  • 我不知道如何将存储在Python中的数据传递给R(本例中为dir_datan_vM_dir)。

我已阅读http://rpy2.readthedocs.io/en/version_2.8.x/introduction.html

中的文档

我发现变量是由

创建的
from rpy2.robjects import FloatVector
ctl = FloatVector([4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14])

但与jupyter笔记本中的R magic相比,这看起来非常复杂。

0 个答案:

没有答案