Problème multiplication de matrice

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

Mathilde Fer
Messages : 66
Enregistré le : 17 Nov 2015, 17:33

Problème multiplication de matrice

Messagepar Mathilde Fer » 24 Juin 2016, 13:17

Bonjour,
J'ai déjà effectué plusieurs multiplication de matrice sur R mais là je suis confrontée à un problème que je ne comprend pas... En effet lorsque je multiplie 2 matrices, la matrice résultante est composée que de NA, mais les titres des colonnes et lignes sont bon... Je ne comprends pas ce qui ne va pas puisque mes 2 matrices sont bien des matrices (avec as.matrix) et sont des matrices numérique (avec as.numeric)...

Si quelqu'un à un piste pour la solution je suis preneuse...

Merci d'avance,

Mathilde

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Re: Problème multiplication de matrice

Messagepar Nicolas Péru » 24 Juin 2016, 13:26

Bonjour,

Dans des cas de ce type l nous faut un exemple reproductible ou à minima une copie de la console si c'est jouable en termes de longueurs de code et/uo d'affichage du code.

Nicolas

Mathilde Fer
Messages : 66
Enregistré le : 17 Nov 2015, 17:33

Re: Problème multiplication de matrice

Messagepar Mathilde Fer » 24 Juin 2016, 13:43

alors je vais essayer d'être la plus claire possible...
pour ma matrice 1 appelée "trait" :

Code : Tout sélectionner

trait<-read.csv("trait_ok.csv", header=T,sep=";", row.names=1)
trait[trait>=1]<-1
trait<-as.matrix(trait)

me donnant une matrice (ce n'est qu'une partie):

a1 a2 a3 a4 a5 a6 a7 b1 b2 c1 c2 c3 e1 e2 e3 e4
E1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1
E2 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1
E3 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1
E4 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1


ma matrice 2 appelée "m" :

Code : Tout sélectionner

m<-read.csv("macro_hab-esp.csv",header=T,row.names=1,sep=";")
m<-data.frame(t(m))
m<-as.data.frame(lapply(m,as.numeric))
m<-as.matrix(m)

me donnant une matrice :

E1 E2 E3 E4
[1,] 0 0 4 0
[2,] 0 0 0 0
[3,] 0 0 0 7
[4,] 0 0 0 4
[5,] 0 0 7 0
[6,] 0 1 0 0
[7,] 0 0 0 0
[8,] 0 0 0 0
[9,] 0 0 2 4

J'effectue ensuite ma multiplication :

Code : Tout sélectionner

multi<-m%*%trait

me donnant :

a1 a2 a3 a4 a5 a6 a7 b1 b2 c1 c2 c3 e1 e2 e3 e4
[1,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[2,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[3,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[4,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: Problème multiplication de matrice

Messagepar Logez Maxime » 24 Juin 2016, 13:47

Bonjour,

Tu dois avoir une ligne ou colonne de NA dans une de tes matrices. As-tu fait sum(is.na(mat1)) et sum(is.na(mat2)) pour savoir si tu en avais ? Si oui alors le résultat est logique.

Cordialement,
Maxime

Mathilde Fer
Messages : 66
Enregistré le : 17 Nov 2015, 17:33

Re: Problème multiplication de matrice

Messagepar Mathilde Fer » 27 Juin 2016, 06:30

Bonjour,
Tu avais raison j'avais 2 NA qui se baladaient dans ma matrice 2 !
Désolé du dérangement, mais je prend bonne note du conseil pour les prochain problème de ce genre.

Math

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: Problème multiplication de matrice

Messagepar François Bonnot » 27 Juin 2016, 06:41

Bonjour,
Le code n'est pas reproductible:

Code : Tout sélectionner

> trait<-read.csv("trait_ok.csv", header=T,sep=";", row.names=1)
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
  cannot open file 'trait_ok.csv': No such file or directory

Voir:
http://forums.cirad.fr/logiciel-R/viewtopic.php?f=1&t=7638
C'est un exemple typique où l'utilisation de dput() permettrait de résoudre rapidement le problème:
http://forums.cirad.fr/logiciel-R/viewtopic.php?f=1&t=3302
François


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité