2012-12-13 19 views
5

Ho una matrice e voglio cambiare il quinto tipo di colonna da carattere in numerico, ma non posso. Ho provato questo:Come modificare il tipo di colonna di matrice in R

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

ma di nuovo la classe di colonna è carattere non numerico. Cosa dovrei fare? Grazie

+5

È possibile avere solo un tipo di dati in una matrice. – Marius

+0

@Marius In realtà ho bisogno di ordinare la mia matrice in base a questa colonna, ma ho bisogno di ordinare in base alla vista numerica non di carattere. C'è un modo? – hora

+3

Prova 'test1 [ordine (as.numeric (test1 [, 5])),]'. – flodel

risposta

6

Come ha detto @Marius, una matrice può contenere solo un tipo di dati. È possibile convertire la matrice in un data.frame poiché data.frames può contenere un tipo di dati diverso per ciascuna delle colonne. Le funzioni per la conversione da e viceversa sono as.data.frame e as.matrix. Sarai quindi in grado di applicare il codice di conversione della colonna che hai pubblicato su data.frame.

Tuttavia, in un commento hai menzionato che il tuo obiettivo finale era riordinare la tua matrice in base ai valori di una colonna coercitiva. Non è necessario forzare la colonna sul posto prima di riordinare la matrice, è possibile eseguire tutte le operazioni al volo con:

test1[order(as.numeric(test1[, 5])), ] 
Problemi correlati