R convertir de la matrice ou de la trame de données à sparseMatrix

J'ai un régulier de la matrice (non fragmentée) que je voudrais convertir en sparseMatrix (à l'aide de la Matrix package). Est-il une fonction pour faire cela ou dois-je besoin de faire un tas de boucles?

ex.

> regMat <- matrix(0, nrow=10, ncol=10)
> regMat[3,5] <- round(runif(1),2)*100
> regMat[2,8] <- round(runif(1),2)*100
> regMat[8,4] <- round(runif(1),2)*100
> regMat[1,6] <- round(runif(1),2)*100
> regMat[7,4] <- round(runif(1),2)*100
> regMat 
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    0    0    0    0   49    0    0    0     0
[2,]    0    0    0    0    0    0    0   93    0     0
[3,]    0    0    0    0   20    0    0    0    0     0
[4,]    0    0    0    0    0    0    0    0    0     0
[5,]    0    0    0    0    0    0    0    0    0     0
[6,]    0    0    0    0    0    0    0    0    0     0
[7,]    0    0    0    8    0    0    0    0    0     0
[8,]    0    0    0   14    0    0    0    0    0     0
[9,]    0    0    0    0    0    0    0    0    0     0
[10,]    0    0    0    0    0    0    0    0    0     0

Des suggestions?

  • mineur suggestion pour la fabrication de vos données-échantillon: regMat[cbind(c(3,2,8,1,7),c(5,8,4,6,4))] <- round(runif(5,0,100))
InformationsquelleAutor screechOwl | 2012-05-11