Pregunta

Tengo un numpy 2D matriz self.sub y quiero utilizarlo en kmeans rpy2. k = robjects.r.kmeans (self.sub, 2,20) Siempre sale el siguiente error: ValueError: nada se puede hacer para el tipo en el momento! ¿qué puedo hacer?

¿Fue útil?

Solución

Desde el rpy2 docs , matrices R son sólo con su conjunto de vectores de atributos tenue. Así que para una matriz de dos dimensiones 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)

Tienes que transponer la matriz numpy porque R llena matrices por columnas.

Editar:. En realidad, sólo podría establecer byrow = True en la función de matriz R, y entonces no habría necesidad de transponer

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top