M = matrix(1:9,3,3)
colnames(M)=c('a','b','c')
Supposons que j'ai une matrice M
, avec les noms de colonne 'a', 'b', 'c'. Et je veux supprimer les noms, de sorte que M
M [,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Plutôt que
a b c
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Comment puis-je faire cela?
Tu peux essayer
colnames(M) <- NULL
En utilisant votre exemple:
> 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
Cependant, si vos données sont stockées dans un data.frame au lieu d'une matrice, cela ne fonctionnera pas. Comme expliqué dans ?data.frame
:
Les noms de colonne ne doivent pas être vides et les tentatives d'utilisation de noms vides auront des résultats non pris en charge
Si vos données sont stockées en tant que data.frame (cela peut être vérifié avec class(my_data)
), vous pouvez essayer de les convertir en matrice avec M <- as.matrix(my_data)
. J'espère que cela t'aides.
Je sais que cela fait un moment que cela n'a pas été posé, mais vu qu'il s'agit d'une question très fréquentée, j'ai pensé que cela pourrait être utile.
Si vous souhaitez effectuer cette action sur M
au lieu de ses noms de colonne, vous pouvez essayer
M <- unname(M)
>M
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Ce serait plus efficace si vous souhaitez diriger ou imbriquer la sortie dans les fonctions suivantes car colnames
ne renvoie pas M
.
Si vous souhaitez supprimer des noms de ligne, utilisez la fonction row.names()
>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