2012-12-13 22 views
5

J'ai une matrice et je veux changer le type cinquième colonne de caractère en numérique, mais je ne peux pas. J'ai essayé ceci:Comment changer le type de colonne de matrice dans R

test1[,5] <- as.numeric(test1[,5]) 

mais encore une fois la classe de colonne est caractère non numérique. Que devrais-je faire? Merci

+5

Vous ne pouvez avoir qu'un seul type de données dans une matrice. – Marius

+0

@Marius En fait je commander ma matrice à base de cette colonne, mais je commander en fonction de vue numérique non characteric. Y a-t-il un moyen? – hora

+3

Essayez 'test1 [order (as.numeric (test1 [, 5])),]'. – flodel

Répondre

6

Comme @Marius dit, une matrice ne peut contenir qu'un seul type de données. Vous pouvez convertir votre matrice en un data.frame car data.frames peut contenir un type de données différent pour chacune de ses colonnes. Les fonctions de conversion de dos et sont as.data.frame et as.matrix. Vous pourrez ensuite appliquer le code de conversion de colonne que vous avez publié sur un data.frame.

Cependant, vous avez mentionné dans un commentaire que votre but ultime était de réorganiser votre matrice basée sur les valeurs d'une colonne sous la contrainte. Vous n'avez pas besoin de forcer la colonne sur place avant de réorganiser votre matrice, vous pouvez faire tout cela à la volée avec:

test1[order(as.numeric(test1[, 5])), ] 
Questions connexes