web-dev-qa-db-fra.com

Comment sous-définir la matrice sur une colonne, conserver le type de données de la matrice, conserver les noms de ligne / colonne?

Lorsque je sous-ensemble une matrice à une seule colonne, le résultat est de classe numérique, pas de matrice (c'est-à-dire myMatrix [ 5] pour sous-ensemble à la cinquième colonne). Existe-t-il un moyen compact de sous-ensemble dans une seule colonne, de conserver le format de matrice et de conserver les noms de ligne/colonne sans faire quelque chose de compliqué comme:

matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )
68
SFun28

Utilisez le drop=FALSE argument à [.

m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1]             # vector
m[,1,drop=FALSE]  # matrix
98
Joshua Ulrich