92 votes

Comment sous-ensemble de la matrice à une colonne, maintenir 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 ] à sous-ensemble à la cinquième colonne). Existe-t-il un moyen compact de sous-ensemble à une seule colonne, de conserver le format de la 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 ] )

131voto

Joshua Ulrich Points 68776

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X