我试图将一个numpy数组传递给R中的GAMLSS包
import numpy as np
import rpy2.robjects as robjects
from rpy2.robjects import numpy2ri
numpy2ri.activate()
r = robjects.r
r.library("gamlss")
r.library("gamlss.mx")
L = r['data.frame'](np.array(np.random.normal(size=1000),
dtype=([('x', np.float), ('y', np.float), ('z', np.float)])))
r.gamlssMX(robjects.Formula('z~1'), data=L)
运行此返回
^{pr2}$但是我可以把数据帧传递给线性模型R函数。在
lm = r.lm(robjects.Formula('x~y'), data=L)
print r.summary(lm.rx())
我有一堆代码可以读取Python中的二进制文件,但是我希望使用R包,因此需要rpy2。在
--编辑--
以R为例:
x <- data.frame(z=c(rnorm(1000), rnorm(1000, mean=4)))
gamlssMX(z~1, K=1, data=x)
看起来是个bug,如果我使用现在折旧的
pandas.rpy.common.convert_to_r_dataframe
,它工作得很好:但当前首选的方法会产生错误:
只有一行区别:使用
com.convert_to_r_dataframe
或pandas2ri.pandas2ri
。看起来当前版本有一个bug。在新的}。在
^{pr2}$pandas2ri.pandas2ri
方法产生rpy2.robjects.vectors.Array
,旧的com.convert_to_r_dataframe
产生{当数据向量是
gamlss
而不是FloatVector
时,gamlss
会引发异常。在相关问题 更多 >
编程相关推荐