我有一个numpy 2D数组self.sub 我想在rpy2 kmeans中使用它。 k = robjects.r.kmeans(self.sub,2,20) 我总是得到以下错误: valueError:此刻无法为该类型做任何事情! 我该怎么办?
答案 0 :(得分:4)
从rpy2 docs,R矩阵只是具有dim属性集的向量。所以对于一个numpy二维数组x
import rpy2.robjects as robj
nr, nc = x.shape
xvec = robj.FloatVector(x.transpose().reshape((x.size))
xr = robj.r.matrix(xvec, nrow=nr, ncol=nc)
你必须转换numpy数组,因为R按列填充矩阵。
编辑:实际上,你可以在R矩阵函数中设置byrow = True,然后你就不需要转置。