2015-09-18 13 views
5
M = matrix(1:9,3,3) 
colnames(M)=c('a','b','c') 

Załóżmy, że mam macierz M, z kolumnami "a", "b", "c". I chcę, aby usunąć nazwy, tak że MJak usunąć nazwy kolumn z macierzy w R?

M [,1] [,2] [,3] 
[1,] 1 4 7 
[2,] 2 5 8 
[3,] 3 6 9 

Zamiast

 a  b c 
[1,] 1 4 7 
[2,] 2 5 8 
[3,] 3 6 9 

jaki sposób mogę to zrobić?

+0

ja nie uzyskać pożądany wynik, mam NA NA NA raczej niż [1], [, 2] [3] – robertevansanders

+0

, kod nie działa dla ciebie? Działa to dobrze dla mnie ... Próbuję uzyskać z matrycy z mnóstwem przypisanych imion do bezimiennego. Powód jest skomplikowany. Powinno to być dość łatwe, pomyślałbym ... – robertevansanders

Odpowiedz

7

Można spróbować

colnames(M) <- NULL 

Korzystanie przykład:

> M 
#  a b c 
#[1,] 1 4 7 
#[2,] 2 5 8 
#[3,] 3 6 9 
> colnames(M) <- NULL 
> M 
#  [,1] [,2] [,3] 
#[1,] 1 4 7 
#[2,] 2 5 8 
#[3,] 3 6 9 

Jednakże, jeśli dane są przechowywane w data.frame zamiast matrycy, to nie będzie działać. Jak wyjaśniono w ?data.frame:

Nazwy kolumn powinny być niepusty i próby wykorzystania pustych nazwy będą miały nieobsługiwane wyniki

Jeśli dane są przechowywane jako data.frame (może to być sprawdzone z class(my_data)), możesz spróbować przekonwertować go na macierz z M <- as.matrix(my_data). Mam nadzieję że to pomoże.

1

Jeśli chcesz usunąć wiersz nazwy używać row.names() funkcja

>M 
     a b c 
1[1,] 1 4 7 
2[2,] 2 5 8 
3[3,] 3 6 9 

>row.names(M)<- NULL ; colnames(M)<- NULL 
>M 

    [,1] [,2] [,3] 
[1,] 1 4 7 
[2,] 2 5 8 
[3,] 3 6 9