如何使用rpy2在python中运行R函数

2024-05-16 02:02:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个R脚本,在R工作室里运行得很好。你知道吗

现在我想在python环境中运行这个R脚本(一个R函数)。你知道吗

但是我得到了一些关于rpy2的错误

下面是我在python环境中调用R函数的步骤。 首先,我尝试将脚本放在R的global environment中。 下一步,我尝试使用r_f = robjects.globalenv['copula_estimator_ScaleLevel']在python中调用它


from rpy2.robjects.packages import importr
import rpy2.rinterface
import rpy2.robjects as robjects
My_lib_R_path = "D:\MSC\Term4\Thesis\ThesisCode\R learning"
#Copula_estimator = importr('copula_estimator_ScaleLevel', lib_loc=My_lib_R_path)
r_source = robjects.r['source']

r_source("D:\MSC\Term4\Thesis\ThesisCode\R learning\copula_estimator_ScaleLevel.R")

r_f = robjects.globalenv['copula_estimator_ScaleLevel']

r_f ("D:\\MSC\\Term3\\R learning\\XX.mat")


这也是R脚本:

copula_estimator_ScaleLevel <- function(path_MatFile){

  #library(copula)
  library(R.matlab)
  library("MASS")
  library(copula)
  library(psych)


  data_XX_lst <- readMat(path_MatFile)

  mat <- data_XX_lst[['XX']]
  mat <- t(mat)
  normal.cop <- normalCopula(dim=2)
  fit.cop<- fitCopula(normal.cop,pobs(mat[1:100,2:3]),method="ml")
  rho <- coef(fit.cop)
  print(rho)
}

这是我在python中收到的错误:

rpy2.rinterface.RRuntimeError: Error in library(R.matlab) : there is no package called 'R.matlab'

Error in library(R.matlab) : there is no package called 'R.matlab'

Process finished with exit code 1

在.mat文件的末尾还有一个包含2 x 200个条目的矩阵。你知道吗

如果您能提供任何帮助,我将不胜感激。你知道吗


Tags: pathimport脚本liblibraryxxcopmatlab