[résolu] Transformer une matrice en tableau à trois colonnes

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Dewi Langlet
Messages : 21
Enregistré le : 06 Jan 2010, 13:43
Contact :

[résolu] Transformer une matrice en tableau à trois colonnes

Messagepar Dewi Langlet » 25 Mar 2010, 14:23

Bonjour à tous,
j'ai un problème assez basique et je n'arrive pas à trouver la réponse.
Je souhaiterais transformer une matrice en un tableau de trois colonnes, avec en première colonne les valeurs de la première ligne de la matrice, en deuxième colonne : la première colonne de la matrice et en troisième colonne la valeur correspondante.

Code : Tout sélectionner

> matrice
      [,1] [,2]   [,3]   [,4]
 [1,]   8    7     14     13   
 [2,]   21   22   23     24
 [3,]   34   35   36     37


et que ca donne

Code : Tout sélectionner

  x       y     valeur
[,1]     [1,]   8
[,1]     [2,]   7
...

etc.

J'espère avoir été clair et que quelqu'un pourra me répondre.

D'avance merci
Dewi

Jean Thioulouse
Messages : 10
Enregistré le : 02 Juin 2009, 13:40

Messagepar Jean Thioulouse » 25 Mar 2010, 16:29

Code : Tout sélectionner

mat<-matrix(rnorm(12), 3, 4)
res<-cbind(as.vector(col(t(mat))), as.vector(row(t(mat))), as.vector(t(mat)))

Dewi Langlet
Messages : 21
Enregistré le : 06 Jan 2010, 13:43
Contact :

Messagepar Dewi Langlet » 25 Mar 2010, 16:34

Ça fonctionne très bien.
Merci beaucoup Jean

Bigot Anthony
Messages : 108
Enregistré le : 07 Avr 2009, 09:07

Matrix to DF en conservant les noms de lignes/colonnes

Messagepar Bigot Anthony » 12 Juil 2013, 14:07

Bonjour,

détérage de sujet pour mieux le référencer et indiquer comment conserver les noms de colonnes et les noms de lignes de la matrice de départ.

(aprce que dur dur de trouver un truc si bête :D)

Le but pour moi est de passer rapidement d'une matrice à un data.frame pour utiliser GGplot.


Code : Tout sélectionner

res<-as.data.frame(cbind(as.vector(colnames(t(mat))), as.vector(rownames(t(mat))), as.vector(t(mat))))
names(res)<-c("Ligne", "Col", "Value")
La règle des 3G vous connaissez? R est:
GRATUIT GIGANTESQUE et GENIAL


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité