【发布时间】:2015-06-09 02:13:31
【问题描述】:
我正在尝试将一个 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)
运行返回
Error in y0 - f0 : non-conformable arrays
但我可以将数据框传递给线性模型 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)
【问题讨论】: