Python 如何使用rpy2访问R包的内部函数?
我正在使用rpy2在Python中使用R的Python 如何使用rpy2访问R包的内部函数?,python,r,rpy2,Python,R,Rpy2,我正在使用rpy2在Python中使用R的GMCM包。GMCM包的一些内部函数只能使用::操作符访问。例如,qgmm.marginal不能以常规方式使用rpy2访问 以下是我的Python代码: import rpy2 import rpy2.robjects as robjects from rpy2.robjects.packages import importr gmcm_r = importr('GMCM') data_r = gmcm_r.SimulateGMCMData(n =
GMCM
包。GMCM包的一些内部函数只能使用::
操作符访问。例如,qgmm.marginal
不能以常规方式使用rpy2访问
以下是我的Python代码:
import rpy2
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
gmcm_r = importr('GMCM')
data_r = gmcm_r.SimulateGMCMData(n = 100, m =3, d=2)
print(gmcm_r.Uhat(data_r.rx2('z'))) # works
print(gmcm_r.qgmm.marginal(gmcm_r.Uhat(data_r.rx2('z')))) # does not work
# AttributeError: module 'GMCM' has no attribute 'qgmm'
相应的R代码为
library(GMCM)
data = SimulateGMCMData(n = 100, m =3, d=2)
u = Uhat(data$z) #works
GMCM:::qgmm.marginal(u, theta)#works
如何使用rpy2访问这些内部函数?您有两个错误:
),您应该将其转换为python语法下划线(。
)。这就是你观察到的错误的原因theta
参数导入rpy2
将rpy2.robjects作为robjects导入
从rpy2.robjects.packages导入导入
gmcm_r=importr('gmcm')
数据=gmcm模拟数据(n=100,m=3,d=2)
印刷(gmcm_r.Uhat(数据_r.rx2('z')))#作品
##[输出省略]
u=gmcm_r.Uhat(数据_r.rx2('z'))
θ=数据。rx2('θ')##需要指定θ
#打印(gmcm_r.qgmm.marginal(u,θ))35;#需要在qgmm后更改网点
将(gmcm_r.qgmm_marginal(u,θ))打印到下划线
[,1] [,2]
[1,] 8.660195 0.26664200
[2,] 7.626162 7.86828143
[3,] 7.862762 8.75474254
##[输出被截断]