2012-12-13 15 views
5

Mam macierz i chcę zmienić typ piątej kolumny z postaci na numeryczny, ale nie mogę. Próbowałem tego:Jak zmienić typ kolumny macierzy w R

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

, ale znowu klasa kolumny jest znakiem, a nie cyfrą. Co powinienem zrobić? Dziękujemy

+5

Możesz mieć tylko jeden typ danych w macierzy. – Marius

+0

@Marius W rzeczywistości muszę zamówić moją matrycę w oparciu o tę kolumnę, ale muszę zamówić w oparciu o widok numeryczny nietypowy. Czy istnieje sposób? – hora

+3

Wypróbuj 'test1 [order (as.numeric (test1 [, 5]))]]. – flodel

Odpowiedz

6

Tak jak powiedział @Marius, macierz może przechowywać tylko jeden typ danych. Mógłbyś przekonwertować swoją macierz na data.frame, ponieważ data.frames może przechowywać inny typ danych dla każdej z ich kolumn. Funkcje konwersji z powrotem iz powrotem to as.data.frame i as.matrix. Będziesz wtedy mógł zastosować kod konwersji kolumny, który opublikowałeś do data.frame.

Wspomniałeś jednak w komentarzu, że twoim ostatecznym celem była zmiana kolejności macierzy w oparciu o wartości kolumny z wymuszeniem. Nie trzeba przymuszać kolumny w miejsce przed zmianą macierzy, można to wszystko zrobić w locie z:

test1[order(as.numeric(test1[, 5])), ] 
Powiązane problemy